For循环将多个列转换为R中的因子
我有几个列需要转换为因子For循环将多个列转换为R中的因子,r,R,我有几个列需要转换为因子 for cols in ['col1','col2']: df$cols<-as.factor(as.character(df$cols)) 对于['col1','col2']中的col: df$cols df$cols显示的语法还使用pythonfor循环和python列表。相反,它将是'R'中字符串的向量 for (col in c('col1','col2')) { df[[col]] <- factor(df[[col]])
for cols in ['col1','col2']:
df$cols<-as.factor(as.character(df$cols))
对于['col1','col2']中的col:
df$cols df$cols显示的语法还使用python
for
循环和python列表
。相反,它将是'R'中字符串的向量
for (col in c('col1','col2')) {
df[[col]] <- factor(df[[col]])
}
或者在dplyr
中,可以更轻松地执行此操作
library(dplyr)
df <- df %>%
mutate_at(vars(col1, col2), factor)
库(dplyr)
df%
在(变量(col1,col2),因子)处突变
作为@akrun solution的补充,使用数据表
,可以轻松完成:
库(data.table)
setDT(df)
df[,c(“col1”,“col2”):=lappy(.SD,函数(c)作为.因子(作为.字符(c)),.SDcols=c(“col1”,“col2”)]
请注意,df
通过引用(:=
)进行更新,因此无需重新分配
df[c('col1', 'col2')] <- lapply(df[c('col1', 'col2')], factor)
library(dplyr)
df <- df %>%
mutate_at(vars(col1, col2), factor)