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

如何按列合并列数不同的频率表?

解决频率表合并问题

你用cbind直接合并不同长度的频率表之所以出错,是因为cbind只按位置拼接,不会匹配行名(也就是你的类别值),导致数据错位或者缺失。下面是正确的合并方法,能得到你想要的格式:

步骤1:将每个频率表转为带类别列的数据框

先把每个table对象转换成标准数据框,保留类别作为单独一列:

# 先加载dplyr包,没有的话先运行 install.packages("dplyr")
library(dplyr)

# 转换并重命名列
df_45_1 <- as.data.frame(table_45_1) %>% 
  rename(类别 = Var1, 45_1 = Freq)
df_45_3 <- as.data.frame(table_45_3) %>% 
  rename(类别 = Var1, 45_3 = Freq)
df_45_6 <- as.data.frame(table_45_6) %>% 
  rename(类别 = Var1, 45_6 = Freq)
df_45_12 <- as.data.frame(table_45_12) %>% 
  rename(类别 = Var1, 45_12 = Freq)

步骤2:全连接合并并补全缺失值

通过全连接(full_join)匹配所有类别,把缺失的频率值补为0:

# 合并所有数据框
merged_df <- df_45_1 %>%
  full_join(df_45_3, by = "类别") %>%
  full_join(df_45_6, by = "类别") %>%
  full_join(df_45_12, by = "类别") %>%
  # 把缺失的频率替换成0
  mutate(across(-类别, ~replace_na(.x, 0))) %>%
  # 按类别排序
  arrange(类别)

最终结果

运行后merged_df就是你要的格式:

类别45_145_345_645_12
13010121
24850
31100
40100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:33:13