0

我有一个数据框,其中包含第一列中的市政名称(因素)和第二列和第三列中的项目数(整数)。

Var.1<-c("Andover", "Avon", "Bethany")
Freq.x<-c(2,NA,10)
Freq.y<-c(4,2,9)
Projects<-data.frame(Var.1,as.integer(as.numeric(Freq.y)),as.integer(as.numeric(Freq.x)))

[注意:我在这里将第二列和第三列设为整数,因为这就是它们在我的实际数据集中的分类方式。]

我能够使用以下方法获取行的总和:

Projects$Sum<-rowSums(Projects[,2:3])

但是,我无法弄清楚如何获取列总和。我尝试使用以下公式:

Projects[Total,]<-colSums(Projects[2:3,])

我得到错误:

colSums(Projects[2:3, ]) 中的错误:“x”必须是数字

即使我将第二列和第三列转换为as.numeric,我也会得到相同的响应。

有人可以建议如何获得列总和在底部创建一个新行来容纳结果吗?

4

1 回答 1

0

你可以这样做:

Var.1<-c("Andover", "Avon", "Bethany")
Freq.x<-c(2,NA,10)
Freq.y<-c(4,2,9)
freq <- cbind(Freq.x, Freq.y)
freq <- rbind(freq, colSums(freq, na.rm=TRUE))
Projects <- data.frame(name=c(Var.1, "Total"), freq)

特别是:将数字部分分开并计算其总和;将“TOtal”添加到字符向量中,然后将其转换为因子,然后制作 data.frame

于 2015-11-03T18:16:42.750 回答