dplyr按顺序复制每一行

dplyr按顺序复制每一行,r,dplyr,R,Dplyr,Dplyr:如何基于整数序列(1:3)重复每一行 我正在登记(例如关于比利时): 预期结果: 每个寄存器的页面包含三行(根据整数序列(1:3)重复每行) 我尝试的是: 将此添加到我的dplyr的管道: %>% group_by(pages) %>% mutate(row_id = seq(1:3)) %>% ungroup() 您可以创建一个列表列,每个列包含1:3,然后取消对其的测试: library(dplyr); library

Dplyr:如何基于整数序列(1:3)重复每一行

我正在登记(例如关于比利时):

预期结果: 每个寄存器的页面包含三行(根据整数序列(1:3)重复每行)

我尝试的是:

将此添加到我的dplyr的管道:

     %>%
     group_by(pages) %>% 
     mutate(row_id = seq(1:3)) %>%
     ungroup()

您可以创建一个列表列,每个列包含1:3,然后取消对其的测试:

library(dplyr); library(tidyr)
df %>% mutate(row_id = list(seq_len(3))) %>% unnest()

#  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


另一个选项是将
粘贴为字符串,然后使用
分隔行
拆分行

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

非常好的回答。非常有帮助。很高兴它有帮助!
  country page row_id
  belg     1   1
  belg     1   2
  belg     1   3 
  belg     2   1
  belg     2   2
  belg     2   3
  ...
     %>%
     group_by(pages) %>% 
     mutate(row_id = seq(1:3)) %>%
     ungroup()
library(dplyr); library(tidyr)
df %>% mutate(row_id = list(seq_len(3))) %>% unnest()

#  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
dput(df)
structure(list(country = structure(c(1L, 1L, 1L), .Label = "belg", class = "factor"), 
    page = 1:3), .Names = c("country", "page"), class = "data.frame", row.names = c(NA, 
-3L))
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