我刚刚开始与R一起使用IgorPro进行数据处理和分析,这些人在他们正确的思想中没有人会像我一样花时间编写脚本。然而,这两者之间的概念上的断开显然导致了我的麻烦。编写用于处理数据帧的函数R
我想编写一个函数,它将采用数据帧中的任何列,并将其从0缩放到1。这里最关键的是我希望重新缩放的数据在数据帧中结束。记我IgorPro框架,这是很容易:
normalize<-function(col){
col<-col/min(col)
}
如果我把testdf$testcol
,打印出结果,这工作,但结果不纳入数据帧。有一项研究表明,这是因为我的功能存在于本地环境中,并且为了修改本地环境以外的事物,它需要与全球环境连接。
修改:
normalize<-function(col){
col<-col/min(col)
assign("col",col,envir=.GlobalEnv)
}
当然这只是吐出了一个名为col
新载体,并不能帮助我在我的工作将覆盖非扩展数据,但是。
将列名称重新分配给重新调整的数据(这违背了编写函数来完成此操作)的问题,我如何使用函数中的参数将函数输出分配给实际的数据框?
最后说明:我很感激任何涉及使用软件包的输入,但是我有更多的数据操作要做,我希望能够编写自己的函数,而不必找到所有东西的软件包,所以如果你能帮助我理解如何自己编写这个函数,而不是指向其他地方的内置函数,那么奖励点就可以了。
你可以传递整个数据帧和列索引(或名称)的功能,并执行计算 – Barranka
你'normalize'功能不会将您的数据扩展到[0,1],而是[1,infinity] –
您似乎对传递引用语义与传值有点混淆。 [R没有通过引用传递](http://stackoverflow.com/questions/2603184/r-pass-by-reference) –