Как мне объединить mutate_all и ifelse - PullRequest
0 голосов
/ 12 декабря 2018

Я хотел бы перебрать все столбцы data.frame с помощью mutate_all (), а затем выборочно изменить значения с помощью 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))

1 Ответ

0 голосов
/ 12 декабря 2018

Попробуйте любой из них:

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) 

Последние два - за комментарий Ронак Шаха ниже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...