Chcę wybrać cols przy użyciu nazw zmiennych i ich wartości w pojedynczym łańcuchu rur bez odwoływania się do innych obiektów, takich jak NAMES <- names(d)
. Czy mogę to zrobić za pomocą select_if()
?dplyr :: select_if może używać nazw zmiennych i ich wartości w tym samym czasie?
Na przykład
mogę używać colnames wybrać cols.
(select(matches(...))
jest inteligentniejsze traktowanie tylko nazw).
library(dplyr)
d <- iris %>% select(-Species) %>% tibble::as.tibble()
d %>% select_if(stringr::str_detect(names(.), "Petal"))
I mogę użyć wartości.
d %>% select_if(~ mean(.) > 5)
Ale jak korzystać z obu? (szczególnie OR)
Poniższy kod jest tym, czego chcę (oczywiście, nie uruchamiaj).
d %>% select_if(stringr::str_detect(names(.), "Petal") | ~ mean(.) > 5)
Każda pomoc zostanie bardzo doceniona.
Dzięki za odpowiedź! Próbowałem funkcji lambda, ale nie jest to konieczne. – cuttlefish44
@ cuttlefish44, na pewno. Problem funkcji polega na tym, że funkcja w '.predicate' jest stosowana do kolumn iw ten sposób tracimy informacje o nazwach. – mt1022
Inną opcją jest 'd%>% select (mecze (" Płatek "), nazwy (które (mapa (., Średnia)> 5)))' – akrun