我已经看到很多人写过循环或使用不同的包来一次更改大量data.frame列的类(请参阅here,here和{{ 3}}对于SO示例),但我想尝试自己的功能。如果我一行一行地运行该功能,但是当我运行该功能时,实际上没有任何事情发生(即,这些类实际上并没有改变)。但是,我也没有收到任何错误。
任何帮助指出这个问题都将不胜感激!
功能:
class.changer <- function(col.names,dat,class.to) {
for(i in c(col.names)) {
dat[,i] <- eval(parse(text=paste0('as.',class.to,'(dat[,\'',i,'\'])')))
}
}
示例:
df <- data.frame(a=1:5,b=1:5)
str(df)
class.changer('a',df,'factor')
str(df) #alas, no change!!