Я создал цикл, который использую для выбора всех факторных переменных из большого фрейма данных. Однако цикл не работает, потому что использование счетчика для индексации столбца по какой-то причине не считается фактором. Почему это? И как я могу заставить этот цикл работать:
#Here's the loop:
y <- data.frame(c = 1:2661)
for (i in 1:ncol(x)){
ifelse(is.factor(x[i]) == FALSE, y <- cbind(y, x[i]), y <- y)
}
И проблема явно в использовании «i» для ссылки на столбец. Например:
#sample data
df <- as.data.frame(structure(c(2L, 2L, 2L, 2L, 2L),
.Label = c("female", "male"), class = "factor"))
names(df)[names(df) == "structure(c(2L, 2L, 2L, 2L, 2L), .Label = c(\"female\", \"male\"), class = \"factor\")"] <- "var"
#reference the column name directly
is.factor(df$var)
[1] TRUE
#use a counter to access the variable:
i <- 1
is.factor(df[i])
[1] FALSE
Это как-то связано с R или что-то с моим ПК? Если это как-то связано с R, может ли кто-нибудь объяснить, что происходит и как заставить мой цикл работать?
is.factor(df[,i])
. Не забудьте написать запятую для обозначения столбца, а не элемента. - person R18   schedule 09.10.2017