У меня есть большой набор данных размером ~ 15 000 x 1500, который я загрузил из файла SPSS .sav. Большинство переменных помечены, даже непрерывные. Я хотел бы взять все переменные, которые явно являются факторами (то есть те, которые имеют только значения 0, 1 и NA) и использовать функцию to_factor()
, чтобы превратить их в факторы. Я пытался выяснить условие mutate_if()
, которое оценило бы true для всех переменных только с уникальными значениями (0, 1, NA), но я застрял.
library(tidyverse)
df <- tibble(X1 = rnorm(50), X2 = rnorm(50), X3 = rnorm(50),
X4 = sample(c(0,1), 50, replace = TRUE),
X5 = sample(c(0,1), 50, replace = TRUE),
X6 = rnorm(50), X7 = sample(c(0,1), 50, replace = TRUE))
# Here's a hacky way that I tried, doesn't work
df %>%
mutate_if(sum(unique(.), na.rm = TRUE) == 1, ~ as.factor(.x))