我正在尝试使用ddply来处理3列data.frame中的2列。我知道我以前做过这件事,但对于我的生活,我无法获得任何工作。这里的例子:R-ddply在3列数据中的2列上起作用。框架
func = function(x, y) {
if(x>y) {
x-y
} else {
0
}
}
df = data.frame(name=c('w','x','y','z'), a=c(1,2,3,4), b=c(4,3,2,1))
这里是我尝试过,与很多其他事情:
ddply(df, summarize, func(a, b))
ddply(df, mutate, func(df$a, df$b))
ddply(df, func)
最常见的错误是:
Error in UseMethod("as.quoted") :
no applicable method for 'as.quoted' applied to an object of class "function"
预期输出:
name a b result
1 w 1 4 0
2 x 2 3 0
3 y 3 2 1
4 z 4 1 3
你的func只有一个参数,你在'ddply'中使用了两个参数。这是为什么? – user227710
对不起,修正了......我在玩一堆东西。编辑函数的问题虽然如此。 – jdesilvio
您是否需要“按组”进行此操作?如果没有,那么没有理由使用'ddply'。另外,这是你真正的功能,还是一个简单的例子?因为如果这是你真正的功能,我们可以在它上面做很多工作...... – Gregor