Dplyr:如何根据整数序列重复每一行 (1:3)
我正在注册(例如关于比利时):
country<- c("belg")
country <- as.data.frame(country)
登记册包含 3 页:
library(dplyr)
country2 <- country %>%
slice(rep(1:n(), each=3)) %>%
mutate(pages = row_number())
我的输出:
country page
belg 1
belg 2
belg 3
预期结果 :
每个 Register'pages 包含三行(根据整数序列 (1:3) 重复每行)
country page row_id
belg 1 1
belg 1 2
belg 1 3
belg 2 1
belg 2 2
belg 2 3
...
我试过的:
将此添加到我的 dplyr 管道中:
%>%
group_by(pages) %>%
mutate(row_id = seq(1:3)) %>%
ungroup()
最佳答案
另一种选择是将 paste
作为字符串,然后使用 separate_rows
拆分行
library(tidyverse)
df %>%
mutate(row_id = toString(seq_len(3))) %>%
separate_rows(row_id)
# country page row_id
#1 belg 1 1
#2 belg 1 2
#3 belg 1 3
#4 belg 2 1
#5 belg 2 2
#6 belg 2 3
#7 belg 3 1
#8 belg 3 2
#9 belg 3 3
关于r - dplyr 按序列复制每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45441847/