【发布时间】:2018-12-12 03:06:52
【问题描述】:
我想使用 mutate_all() 遍历 data.frame 的所有列,然后使用 ifelse() 有选择地更改值。
testdf <- data.frame("a"=c(1,2,3), "b"=c(4,5,6), "c"=c(7,8,9))
mutate_all(testdf, ifelse(.>9,10,.))
但这不起作用。我总是得到“对象”。未找到”。如何引用通过 mutate_all() 函数传递的各个值?我以为'。那样工作?这有效:
mutate_all(testdf, funs(.*2))
【问题讨论】:
-
你必须像第二个例子一样传递一个函数,而不仅仅是一个表达式。请参阅
?mutate_all底部的示例,其中使用了funs()。 -
mutate_all(testdf, funs(ifelse(. > 9, 10, .)))为我工作。附带说明 - 您的testdf中没有值> 9。 -
谢谢,那是我没有意识到的部分。我必须使用函数并且不能使用表达式。我误解了“对象”。未找到”错误。