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

如何在R中重复索引列每行值三次并合并行去除NA值

解决方案

可以用dplyr和tidyr工具直接处理,两种思路供你选:

思路一:直接处理已生成的tweets2

library(dplyr)

# 给每3行标记同一分组ID
tweets_merged <- tweets2 %>%
  mutate(group_id = ceiling(index / 3)) %>%
  # 按分组聚合,每列取非NA值(每组同列仅一个非NA)
  group_by(group_id) %>%
  summarise(across(everything(), ~ .x[!is.na(.x)]), .groups = "drop") %>%
  # 删掉不需要的辅助列
  select(-index, -group_id)

代码说明

  • ceiling(index / 3):把原index列每3个归为一组,比如1-3行的group_id为1,4-6行为2,以此类推。
  • across(everything(), ~ .x[!is.na(.x)]):对每一列提取非NA值——因为你每组3行里同一列只有一个有效数据,直接取非NA项就能合并成完整行。

思路二:从原始tweets1直接生成目标结果(更高效)

如果tweets1还保留着,建议在转宽表前先分组,一步到位:

library(dplyr)
library(tidyr)

tweets_merged <- tweets1 %>%
  # 先给每3行标记分组
  mutate(group_id = ceiling(row_number() / 3)) %>%
  # 转宽表时自动按分组合并,不会产生NA
  pivot_wider(names_from = "X1", values_from = "X2") %>%
  select(-group_id)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:17:02