如何结合。和mutate_each中的列式操作

时间:2016-06-02 20:13:18

标签: r dplyr

问题

我试图在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

问题

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

正确答案来自Alistaire上面的评论:

  

<强> Alistaire:
  如果您提供的不仅仅是函数名称,则需要在需要数据的任何位置放置一个点:df %>% mutate_each(funs(do = . - max(.)))