2013-10-26 45 views
1

我想在我的data.frame添加一行:爲什麼我不能在data.frame中添加一行?

x<-data.frame(sex=c("male","female"),number=c(2340,1890)) 
z<-data.frame(x,prop=x$number/sum(x$number)) 
z[3,]<-c("total",sum(z$number),sum(z[,3])) 
Warning message: 
In `[<-.factor`(`*tmp*`, iseq, value = "total") : 

z 
    sex number    prop 
1 male 2340 0.553191489361702 
2 female 1890 0.446808510638298 
3 <NA> 4230     1 

> z[3,1]<-"total" 
Warning message: 
In `[<-.factor`(`*tmp*`, iseq, value = "total") : 
    invalid factor level, NA generated 

我怎樣才能改變z[3,1]爲「總」?

回答

2

添加水平的因素第一(後跟您的代碼行):

levels(z$sex) = c(levels(z$sex), "total") 

或者,如果您不需要列是一個因素:

z$sex = as.character(z$sex) 
相關問題