我想使用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))
答案 0 :(得分:4)
尝试以下任一方法:
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)
以下是Ronak Shah的评论中的最后两个。