问题
我试图在mutate_each
内创建一个函数,它可以在数据帧的列上工作,并将逐列操作与单元格操作结合起来。
示例
> df <- as.data.frame(matrix(1:10, ncol = 5))
V1 V2 V3 V4 V5
1 1 3 5 7 9
2 2 4 6 8 10
> df <- df %>% mutate_each(funs(do = . - 1)) # Works fine
V1 V2 V3 V4 V5
1 0 2 4 6 8
2 1 3 5 7 9
> df <- df %>% mutate_each(funs(do = max)) # Works fine
V1 V2 V3 V4 V5
1 1 3 5 7 9
2 1 3 5 7 9
> df <- df %>% mutate_each(funs(do = . - max)) # Error
Error: non-numeric argument to binary operator
问题
这样做的正确方法是什么?
答案 0 :(得分:0)
正确答案来自Alistaire上面的评论:
<强> Alistaire:强>
如果您提供的不仅仅是函数名称,则需要在需要数据的任何位置放置一个点:df %>% mutate_each(funs(do = . - max(.)))