1

我想在我的 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]变成“总”?

4

1 回答 1

2

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

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

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

z$sex = as.character(z$sex)
于 2013-10-26T03:48:06.077 回答