应用 returns 个字符而不是因子

sapply returns characters instead of factor

我做了一个数据框

x<-data.frame(replicate(7,sample(0:100,20,rep=TRUE)))
time<-rep(c("A", "B", "C", "D"), times=5)
id<-rep(c("WT", "KO"), each=10)
df<-cbind(id, time,x, stringsAsFactors = FALSE)

我想将所有内容都设为数字以便缩放热图的数据,但应用 returns id 和时间作为字符而不是因子。

sapply(df, class)

   id         time            X1           X2         X3          X4         X5           
"character" "character"   "integer"   "integer"   "integer"   "integer"  "integer"   

   X6           X7
"integer"   "integer" 

我现在不知道该怎么办,有人可以帮助我吗?谢谢

您可以调用 data.frame 而不是 cbind 以获得 'id' 和 'time' 作为 factor 列,因为默认选项是 stringsAsFactors=TRUE .

df <- data.frame(id, time, x)
sapply(df, class)
#  id      time        X1        X2        X3        X4        X5        X6 
#"factor"  "factor" "integer" "integer" "integer" "integer" "integer" "integer" 
#    X7 
#"integer"