R 获取数据帧子集的总数

R 获取数据帧子集的总数,r,R,我有数据框的动态列,如下所示。我正在尝试创建列中数值的小计。但得到的错误如下。列的类是字符 目标是创建一行“总计”和列的总和 tot一列只能有一种类型的数据,因此,如果数据中有“CC”、“CC1”等值,则表示列的类型为字符。删除第一行和第一列后,需要将列的类型更改为数字并计算其总和。可以使用type.convert更改列的类型 total <- colSums(type.convert(tab1[-1,-1])) total # A B C #143 151 135 to

我有数据框的动态列,如下所示。我正在尝试创建列中数值的小计。但得到的错误如下。列的类是字符

目标是创建一行“总计”和列的总和


tot一列只能有一种类型的数据,因此,如果数据中有“CC”、“CC1”等值,则表示列的类型为字符。删除第一行和第一列后,需要将列的类型更改为数字并计算其总和。可以使用
type.convert
更改列的类型

total <- colSums(type.convert(tab1[-1,-1]))
total
#  A   B   C 
#143 151 135 

total try
lappy(as.data.frame(tab1[-1,-1]),函数(x)sum(as.numeric(x))
t1数据是一样的,谢谢tab1如果我使用帖子中的数据,它对我有效,如答案所示。如果您使用的是R<4.0.0,请在
data.frame
调用中使用
stringsAsFactors=FALSE
tab1也尝试了这种方法,确保使用了正确的变量名。您在
total1
中保存数据,然后在
rbind
中使用
t(total)
,使用
t(total1)
。如果仍然无法工作,请重新启动R并重试。
total <- colSums(type.convert(tab1[-1,-1]))
total
#  A   B   C 
#143 151 135 
tab2 <- rbind(tab1, data.frame(T = 'Total', t(total)))
tab2

#      T   A   B   C
#1    T1  CC CC1 CC2
#2    T2  39  29  36
#3    T3  52  88  41
#4    T4  52  34  58
#5 Total 143 151 135
tab1 <- data.frame(T = paste0('T', 1:4), A = c('CC', 39, 52, 52), 
                   B = c('CC1', 29, 88, 34), C = c('CC2', 36, 41, 58))