如何在 r 中复制数据框中的行
您可以使用以下方法通过dplyr包中的函数复制 R 中数据框中的行:
方法 1:将每行复制相同的次数
library (dplyr) #replicate each row 3 times df %>% slice(rep(1:n(), each = 3))
方法 2:将每行复制不同的次数
library (dplyr) #replicate the first row 3 times and the second row 5 times df %>% slice(rep(1:n(), times = c(3, 5)))
以下示例展示了如何在实践中使用每种方法。
示例 1:将每行复制相同的次数
假设我们在 R 中有以下包含两行的数据框:
#create data frame
df <- data. frame (team=c('A', 'B'),
dots=c(10, 15),
rebounds=c(4, 8),
assists=c(2, 5))
#view data frame
df
team points rebound assists
1 to 10 4 2
2 B 15 8 5
我们可以使用以下语法将数据帧的每一行重复三次:
library (dplyr)
#create new data frame that repeats each row in original data frame 3 times
new_df <- df %>% slice(rep(1:n(), each = 3))
#view new data frame
new_df
team points rebound assists
1 to 10 4 2
2 to 10 4 2
3 to 10 4 2
4 B 15 8 5
5 B 15 8 5
6 B 15 8 5
请注意,原始数据帧中的每一行都重复了 3 次。
示例 2:将每行复制不同的次数
假设我们在 R 中有以下包含两行的数据框:
#create data frame
df <- data. frame (team=c('A', 'B'),
dots=c(10, 15),
rebounds=c(4, 8),
assists=c(2, 5))
#view data frame
df
team points rebound assists
1 to 10 4 2
2 B 15 8 5
我们可以使用以下语法将第一行重复三次,第二行重复五次:
library (dplyr)
#create new data frame that repeats first row 3 times and second row 5 times
new_df <- df %>% slice(rep(1:n(), times = c(3, 5)))
#view new data frame
new_df
team points rebound assists
1 to 10 4 2
2 to 10 4 2
3 to 10 4 2
4 B 15 8 5
5 B 15 8 5
6 B 15 8 5
7 B 15 8 5
8 B 15 8 5
请注意,原始数据帧的第一行重复了 3 次,第二行重复了 5 次。
其他资源
以下教程解释了如何在 dplyr 中执行其他常见操作:
如何使用 dplyr 按索引选择列
如何使用 dplyr 按组选择第一行
如何使用 dplyr 按多个条件进行过滤
如何使用 dplyr 过滤包含特定字符串的行