比如说,我有一个数据框A,里面有一列字符变量b,我想把b的前两个字符提取出来,组成新的变量b2,在用transform函数的时候:A<-transform(A,b2=substr(b,1,2)),它会自作聪明地把b2变成因子,给我后续的分析带来意向不到的麻烦,因为我想b2仍然是一个字符向量。包括data.frame、read.table等函数也是这样。我觉得这个有点自作多情了。transform能不能像read.table函数那样,在里面设一个as.is=T?
transform函数一个非常不好的地方
至少data.frame()有参数 stringsAsFactors
参见“stringsAsFactors = F”,这个在很多function里都能用。
可以考虑使用“Hadley系列”的包和函数,比如dplyr包。