R повторять строки с каждым элементом в списке - PullRequest
0 голосов
/ 03 октября 2019

Как я могу развернуть фрейм данных R и повторить каждую строку для всех элементов в списке и добавить этот элемент в виде столбца (предпочтительно с использованием базы R)?

inputTable:

col1 col2
id1 a
id1 b
id2 c

listToReplicateRows:

[1,2,3]

Желаемый вывод:

col1 col2 element
id1 a   1
id1 a   2
id1 a   3
id1 b   1
id1 b   2
id1 b   3
id2 c   1
id2 c   2
id2 c   3

1 Ответ

1 голос
/ 03 октября 2019

Один параметр - uncount из tidyr, чтобы реплицировать каждую строку в n строки, а затем создать «элемент» в виде последовательности «n» rep licised

library(dplyr)
library(tidyr)
n <- 3
df1 %>%
   uncount(n) %>%       
   mutate(element = rep(seq_len(n), length.out = n()))
#. col1 col2 element
#1  id1    a       1
#2  id1    a       2
#3  id1    a       3
#4  id1    b       1
#5  id1    b       2
#6  id1    b       3
#7  id2    c       1
#8  id2    c       2
#9  id2    c       3

данных

df1 <- structure(list(col1 = c("id1", "id1", "id2"), col2 = c("a", "b", 
"c")), class = "data.frame", row.names = c(NA, -3L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...