如何将R dataframe隔行(奇数行)数值填充至所有行或切换至偶数行
R语言DataFrame隔行值填充/切换存储规则方案
1. 全列填充现有值
你当前的数据work列仅偶数行有有效值,奇数行为空字符串,以下两种方案都可以实现全列填充:
tidyverse方案(代码简洁易读)
# 未安装tidyverse先执行:install.packages("tidyverse") library(tidyverse) output <- output %>% # 将空字符串转为NA方便填充 mutate(work = na_if(work, "")) %>% # 向下填充所有空值,默认用上方最近的非空值覆盖 fill(work, .direction = "down") # 若第一行也需要填充(原第一行为空无上方值),可改为双向填充: # fill(work, .direction = "updown")
基础R方案(无需额外依赖)
# 提取偶数行的所有有效值 valid_vals <- output$work[seq(2, nrow(output), 2)] # 每个有效值重复2次,匹配全列行数 output$work <- rep(valid_vals, each = 2, length.out = nrow(output))
2. 切换存储规则(替代方案)
如果你需要将有效值改为仅奇数行存储、偶数行无值,可使用以下代码:
valid_vals <- output$work[seq(2, nrow(output), 2)] # 先清空整列 output$work <- "" # 把有效值赋值给奇数行 output$work[seq(1, nrow(output), 2)] <- valid_vals
如果你需要保持偶数行存储的原始状态,不需要额外处理。
内容的提问来源于stack exchange,提问作者JElder
相关产品推荐
相关产品推荐

