Change the class from factor to numeric of many columns in a data frame (16 个回答)
5年前关闭。
我想更改 R 数据框中多列的类,而不是一一进行,也不想使用
for
循环(并注意
this 答案)。我可以用这两种方法中的任何一种来做到这一点,但它们感觉很笨拙。请注意,我不一定要更改每一列。
例如。我有数据框
mydf
:
mydf <- data.frame("col1" = c(1, 2, 3),
"col2" = c("a", "b", "c"),
"col3" = c("a", "a", "b"), stringsAsFactors = FALSE)
我想将第二列和第三列更改为类因子。 (实际上我想处理的列多于两列......)
我可以以我最喜欢的方式逐列进行,例如:
mydf$col2 <- as.factor(mydf$col2)
mydf[, 3] <- as.factor(mydf[,3])
或者我可以使用 for 循环:
for (i in 2:3{
mydf[,i] <- as.factor(mydf[,i])
}
这些工作,但感觉笨重和次优。
更好的想法?
好的,我在写问题时解决了这个问题,但我认为它可能会上升,以防将来任何人使用它:
mydf[,2:3] <- lapply(mydf[,2:3], as.factor)