我想使用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,.))
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。我总是得到“对象”。未找到”。如何引用通过mutate_all()函数传递的各个值?我以为。这样工作吗?这有效:
mutate_all(testdf, funs(.*2))
Run Code Online (Sandbox Code Playgroud)
尝试以下任一方法:
testdf %>% mutate_all(function(x) ifelse(x>9,10,x))
testdf %>% mutate_all(funs(ifelse(.>9,10,.)))
testdf %>% mutate_all(testdf, ~ifelse(.>9,10,.))
testdf %>% mutate_all(~ pmin(., 10))
testdf %>% mutate_all(pmin, 10)
testdf %>% mutate_all(~ replace(., . > 9, 10))
testdf %>% replace(. > 9, 10)
Run Code Online (Sandbox Code Playgroud)
最后两个是Ronak Shah在下面的评论。
| 归档时间: |
|
| 查看次数: |
652 次 |
| 最近记录: |