如何在R语言dataframe中复制一行并将其置于原行之后?
复制DataFrame指定行并插入原行后的实现方法
针对你提供的原始DataFrame:
original_df <- data.frame( ID = c(1, 2, 3), Name = c("Alice", "Bob", "Charlie"), Age = c(25, 30, 22) )
要实现复制指定行(此处为第2行)并插入到原行之后,得到目标输出,以下是两种常用的R语言实现方法:
方法一:基础R原生实现
通过拆分原DataFrame为三部分,再用rbind()拼接即可:
- 定义要复制的行索引(此处为2)
- 拆分出目标行之前的部分、目标行本身、目标行之后的部分
- 按顺序拼接这三部分
# 指定要复制的行索引 row_index <- 2 # 拼接生成结果DataFrame result_df <- rbind( original_df[1:row_index, ], # 目标行及之前的内容 original_df[row_index, ], # 复制的目标行 original_df[(row_index + 1):nrow(original_df), ] # 目标行之后的内容 ) # 查看结果 print(result_df)
输出结果:
ID Name Age 1 1 Alice 25 2 2 Bob 30 3 2 Bob 30 4 3 Charlie 22
方法二:使用dplyr包(tidyverse生态)
如果习惯使用tidyverse工具链,可通过slice()函数重新指定行顺序,写法更简洁:
library(dplyr) row_index <- 2 result_df <- original_df %>% slice(c(1:row_index, row_index, (row_index + 1):n())) # 查看结果 print(result_df)
此方法通过构造包含重复索引的向量,让slice()按指定顺序提取行,同样能得到目标输出。
内容的提问来源于stack exchange,提问作者An116
相关产品推荐
相关产品推荐

