这个问题在这里已经有了答案:
Repeat each row of data.frame the number of times specified in a column
(9 个回答)
2年前关闭。
我想根据 R 中的现有列表创建一个包含重复条目的新列表。我正在尝试尽可能多地使用 tidyverse,因此 dplyr 将是首选。
假设我有一个销售发生的时间列表:
df <- data.frame(time = c(0,1,2,3,4,5), sales = c(1,1,2,1,1,3))
> df
time sales
1 0 1
2 1 1
3 2 2
4 3 1
5 4 1
6 5 3
我想要一个列表,其中包含每个销售的条目:
ans <- data.frame(salesTime = c(0,1,2,2,3,4,5,5,5))
> ans
salesTime
1 0
2 1
3 2
4 2
5 3
6 4
7 5
8 5
9 5
我在这里发现了一个使用 dplyr 的有趣例子:Create duplicate rows based on conditions in R
但这只会让我在 sales == n 时创建一个新行,而在 sales == n 时不允许创建 n 个新行。
任何帮助将不胜感激。
最佳答案
不错的tidyr
这个函数是 uncount()
:
df %>%
uncount(sales) %>%
rename(salesTime = time)
salesTime
1 0
2 1
3 2
3.1 2
4 3
5 4
6 5
6.1 5
6.2 5
关于R:根据变量创建重复行(首选 dplyr),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52498169/