R因子包含所有包含字符串的列

时间:2016-06-16 23:40:41

标签: r

我有许多数据帧列我希望转换为因子而不考虑每个单独的字段。如何迭代列名称,如果匹配正则表达式将它们转换为因子?我来自Python世界,我还不了解R中的循环和字符串替换。

伪代码:

    for name in df.columns.names:
        if name matches "regex":
            df$name <- factor(df$name)

2 个答案:

答案 0 :(得分:1)

大概:

 df[  , grepl('regex' , names(df)) ] <- 
                                   lapply( df[  , grepl('regex' , names(df)) ], factor)

在这种情况下也可以使用grepj[的{​​{1}}参数可以采用逻辑或数字参数。

答案 1 :(得分:0)

我们可以使用type.convert

df[] <- lapply(df, function(x) type.convert(as.character(x)))