как получить имена столбцов в функции изменения - PullRequest
0 голосов
/ 03 августа 2020

всем! У меня возник вопрос. В наборе данных iris для каждой строки я хотел получить имена столбцов, значение которых> 1, а затем объединить их. Ожидаемый результат выглядит следующим образом: SL & SW & PL, SL & SW & PL & PW ...

library(tidyverse)
data("iris")
colnames(iris)[1:4] <- c("SL","SW","PL","PW") # simplify the colnames
for (i in 1:nrow(iris)) {
  row_i <- iris[i,1:4]
  iris$new_var[i] <- names(row_i)[row_i>2] %>% paste0(.,collapse = "&")
  }

Вот несколько примеров new_var, и это результат, который я ожидал

> iris$new_var[c(1,30,60,90,120)]
[1] "SL&SW"    "SL&SW"    "SL&SW&PL" "SL&SW&PL" "SL&SW&PL"

Однако функция mutate не сработало, как я ожидал.

fournames <- c("SL","SW","PL","PW")
iris %>% mutate(new_var=paste0(fournames[(SL:PW)>2],collapse = "&"))

Как повторить результат for-l oop с помощью функции изменения?

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