我想根据 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
Run Code Online (Sandbox Code Playgroud)
我想要一个列表,其中包含每个销售的条目:
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
Run Code Online (Sandbox Code Playgroud)
我在这里找到了一个使用 dplyr 的有趣示例:根据 R 中的条件创建重复行
但这只会让我在 sales == n 时创建一个新行,而在 sales == n 时不允许创建 n 个新行。
任何帮助将不胜感激。
tmf*_*mnk 15
一个很好的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
Run Code Online (Sandbox Code Playgroud)