You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中合并两行数值生成新行添加至结果表

解决R语言中为比例表格新增合并行的问题

我有一段R语言代码,可生成标记为h12a至h12h的不同问题中,响应为1、2、3或4的占比。现在需要在表格中添加一行,显示响应为1或2的占比(即把第1行和第2行的数值相加作为新增行)。

现有表格:

xh12a
10.5
20.1
30.1
40.3

目标表格:

xh12a
10.5
20.1
30.1
40.3
1_20.6

原代码如下:

H12<-tibble(x=seq(1:4))
for (i in c(1:8)){
  A=df.e%>%filter(ep==1)%>%
    select(paste0('h12',letters[i]))%>%filter(!is.na(.))%>%
    mutate_if(is.character,as.numeric)%>%
    table()%>%prop.table()%>%as.tibble()%>%
    mutate_if(is.character,as.numeric)%>%
    setNames(c('x',paste0('h12',letters[i])))
  H12=left_join(H12,A)
}

解决方案

在原代码生成H12表格后,添加以下代码即可生成包含合并行的目标表格:

# 计算1和2的占比之和,生成新增行
sum_row <- H12 %>%
  filter(x %in% c(1, 2)) %>%  # 筛选出x为1和2的行
  summarise(across(-x, sum),  # 对所有h12开头的列求和
            x = "1_2")        # 标记新增行的x值为1_2

# 将新增行绑定到原表格末尾
H12 <- bind_rows(H12, sum_row)

代码说明

  • filter(x %in% c(1,2)):精准筛选出响应为1和2的两行数据;
  • summarise(across(-x, sum)):使用across函数对除x列外的所有列(即h12a到h12h)进行求和计算;
  • bind_rows(H12, sum_row):把计算好的合并行追加到原表格的最后一行。

内容的提问来源于stack exchange,提问作者Ali Inayat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:57:04