R通配符,sapply和as.factor

时间:2012-11-14 11:37:14

标签: r sapply

我想将类型更改为名称与特定模式匹配的数据框中所有变量的因子。

所以在这里我试图将数据框df中名称以 namestub 开头的所有变量的类型更改为因子。

attach(df)    
sapply(grep(glob2rx("namestub*"), names(df)), as.factor)

但是这不起作用,因为

> levels(df$namestub1)
NULL

1 个答案:

答案 0 :(得分:2)

## Make a reproducible example
df <- data.frame(namestubA = letters[1:5], B = letters[5:1], 
                 namestubC = LETTERS[1:5], stringsAsFactors=FALSE)

## Get indices of columns to convert
ii <- grep(glob2rx("namestub*"), names(df))

## Convert and replace the indicated columns
df[ii] <- lapply(df[ii], as.factor)