R - 如何为数据帧的每个分组添加 N 行数?

R - how to add N number of rows to each grouping of a dataframe?

提问人:aievan 提问时间:11/15/2023 更新时间:11/15/2023 访问量:35

问:

我有一个看起来像这样的数据帧:

事件 ID 地区 损失
123 一个 澳大利亚 620
383 一个 澳大利亚 1232
123 B 澳大利亚 620
123 C 澳大利亚 1232
499 一个 日本 620
499 B 日本 1232
522 B 日本 620
771 一个 墨西哥 1232
919 一个 墨西哥 620
771 B 墨西哥 1232
800 B 墨西哥 620
993 C 墨西哥 1232
1772 一个 瑞典 620
2004 C 瑞典 1232
2193 一个 美国 620
3384 一个 美国 1232
2193 一个 美国 620
4026 B 美国 1232
6002 C 美国 620
6283 C 美国 1232

我想做的是插入行,以便在计算 EventID 的单个实例时,按业务和区域对每个分组都有 10 个额外的事件。

例如,当业务 A 分组时,它看起来像这样:

地区 Event_Count
一个 澳大利亚 2
一个 日本 1
一个 墨西哥 2
一个 瑞典 1
一个 美国 3

我希望原始数据帧在每个业务区域分组中插入 10 个额外的行,其中包含空白的 EventID 和 Loss 字段,这将使分组的 df 如下所示:

地区 Event_Count
一个 澳大利亚 12
一个 日本 11
一个 墨西哥 12
一个 瑞典 11
一个 美国 13

尝试了其他stackoverflow q的一些解决方案,例如:

LSM_Re_Events_Less_100 <- LSM_Re %>% right_join(LSM_Re_Events, by=c("LineOfBusiness", "Peril", "Region")) %>%
  select(YearID, EventID, LineOfBusiness, Peril, Region, Loss) %>%
  xtabs(formula = Loss ~ YearID + EventID + LineOfBusiness + Peril + Region) %>% as.data.frame()

但是我还没有找到任何描述如何根据每个分组添加特定行数的内容。

r 数据帧 分组

评论

0赞 Allan Cameron 11/15/2023
总结后,您不能在事件计数中添加 10 吗?

答:

0赞 jblood94 11/15/2023 #1

您可以重复选择不重复的行。例如,

rbind(
  df,
  df[rep(which(!duplicated(select(df, Business, Region))), each = 10),] %>%
    mutate(EventID = NA, Loss = NA)
)