我希望将till_5
的总和作为Grand total
添加到新行中。我正在尝试colSums
,但它显示出错误。
df1=rbind(df1,c("Grand Total",colSums(df1[,3],na.rm = T)))
#Error in colSums(df1[, 3], na.rm = T) :
# 'x' must be an array of at least two dimensions
数据集(df1)
origin destination_city2 till_5
A Chennai 72
B Coimbatore 4
C Jaipur 1
D Ajmer 3
E Jaipur 4
F Kishangarh 1
答案 0 :(得分:3)
colSums
适用于data.frame
或matrix
。当我们将数据子集化为vector
(df1[,3]
)时,它会丢失维度。如果我们需要colSums(df1[3])
或colSums(df1[,3, drop = FALSE])
。但是,对于单个列vector
,只需要sum
rbind(df1, list(origin = "GrandTotal", destination_city2 = "",
till_5 = sum(df1$till_5)))
# origin destination_city2 till_5
#1 A Chennai 72
#2 B Coimbatore 4
#3 C Jaipur 1
#4 D Ajmer 3
#5 E Jaipur 4
#6 F Kishangarh 1
#7 GrandTotal 85
另外,在OP的例子中,似乎有3列,所以我们需要rbind
具有相同数量的元素
答案 1 :(得分:1)
你想要sum(df1$till_5)
。它只是一个值,因此您可能不希望将其分配给数据框中的整个新行。