我想更改R数据框中的多个列的类,而不是一个接一个地更改它,也不要使用for循环(并注意此答案)。我可以用这两种方法中的任一种来做,但是它们感到笨拙。请注意,我不一定要更改每一列。
例如我有数据框mydf:
mydf <- data.frame("col1" = c(1, 2, 3),
"col2" = c("a", "b", "c"),
"col3" = c("a", "a", "b"), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)
我想将第二列和第三列更改为类因子。(实际上,我想处理两个以上的专栏...)
我可以按自己喜欢的方式逐列进行操作,例如:
mydf$col2 <- as.factor(mydf$col2)
mydf[, 3] <- as.factor(mydf[,3])
Run Code Online (Sandbox Code Playgroud)
或者我可以使用for循环:
for (i in 2:3{
mydf[,i] <- as.factor(mydf[,i])
}
Run Code Online (Sandbox Code Playgroud)
这些工作,但感到笨拙和次优。
更好的主意?
好的,我在写问题时就解决了这个问题,但是想出这个问题可能会增加,以防将来被任何人使用:
mydf[,2:3] <- lapply(mydf[,2:3], as.factor)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8117 次 |
| 最近记录: |