Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For循环将多个列转换为R中的因子_R - Fatal编程技术网

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)