如何在R语言中对DataFrame部分行求和以生成新行或合并行
R语言实现DataFrame指定行保留与求和行生成
初始数据
columna_a <- c('a','b','c') columna_b <- c(300,400,250) columna_c <- c(1,2,3) df1 <- data.frame(columna_a, columna_b, columna_c)
操作一:仅保留指定行及两行求和结果
直接提取目标行,计算指定两行的求和值,再合并成新的DataFrame:
# 提取需要保留的a行 row_a <- df1[df1$columna_a == 'a', ] # 计算b、c行的求和结果,构造新行 sum_bc <- data.frame( columna_a = 'b+c', columna_b = sum(df1$columna_b[df1$columna_a %in% c('b','c')]), columna_c = sum(df1$columna_c[df1$columna_a %in% c('b','c')]) ) # 合并得到目标DataFrame df2 <- rbind(row_a, sum_bc)
操作二:先新增求和行,再按需保留
先把求和行添加到原DataFrame中,再筛选出需要的行:
# 构造b、c行的求和行 sum_bc <- data.frame( columna_a = 'b+c', columna_b = sum(df1$columna_b[df1$columna_a %in% c('b','c')]), columna_c = sum(df1$columna_c[df1$columna_a %in% c('b','c')]) ) # 将求和行新增到原DataFrame df_with_sum <- rbind(df1, sum_bc) # 筛选保留a行和求和行 df2 <- df_with_sum[df_with_sum$columna_a %in% c('a', 'b+c'), ]
说明
如果需要更换指定保留的行或求和的行,只需修改代码中columna_a的匹配值即可(比如把'a'换成其他标识,把c('b','c')换成其他需要求和的行标识)。
内容的提问来源于stack exchange,提问作者Natalias
相关产品推荐
相关产品推荐

