为什么我不能在data.frame中添加一行?

时间:2013-10-26 03:44:18

标签: r

我想在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]更改为“总数”?

1 个答案:

答案 0 :(得分:2)

首先将级别添加到因子(后跟您的代码行):

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

或者,如果您不需要该列作为因素:

z$sex = as.character(z$sex)
相关问题