2015-08-15 1 views
2

я сделать dataframesapply возвращает символы вместо фактора

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) 

Я хочу, чтобы все числовые, чтобы масштабировать данные для тепловой карты, но sapply возвращает идентификатор и время как символы вместо фактора.

sapply(df, class) 

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

    X6   X7 
"integer" "integer" 

Я понятия не имею, что теперь делать, может ли кто-нибудь мне помочь? Спасибо

+0

как вы хотите преобразовать символ в числовой? –

+1

Попробуйте 'data.frame (id, time, x)' – akrun

ответ

1

Вы можете позвонить по телефону 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"