在R中创建副本

在R中创建副本,r,R,我有以下4列3行的输入数据框。 时间列的值可以从1到该客户到期列的相应值,我想为每个客户创建更多观察值,直到时间值=到期值,其他列保留其原始值。有关输入和预期输出,请参见以下链接 输入 输出 这里有一个dplyr解决方案,它的灵感来自于,但并不完全等同于 我们还可以将切片与行编号 library(dplyr) library(data.table) df %>% slice(rep(row_number(), maturity)) %>% mutate(time

我有以下4列3行的输入数据框。 时间列的值可以从1到该客户到期列的相应值,我想为每个客户创建更多观察值,直到时间值=到期值,其他列保留其原始值。有关输入和预期输出,请参见以下链接

输入

输出


这里有一个
dplyr
解决方案,它的灵感来自于,但并不完全等同于


我们还可以将
切片
行编号

library(dplyr)
library(data.table)
df %>% 
    slice(rep(row_number(), maturity)) %>%
    mutate(time = rowid(custno))
数据
df图像不是发布数据(或代码)的好方法。您能否以
dput
格式发布样本数据?请使用您尝试过的代码和
dput(df)
.df%groupby(custno)%%>%mutate(time=seq_-along(time))的输出编辑问题我尝试了上述方法,基本上,时间应该迭代到每行的到期值time应该迭代到每行的到期值。工作起来像宝石一样!!非常感谢。
df <- data.frame(custno = 1:3, time = 1, 
                 dept = c("A", "B", "A"),
                 maturity = c(5,4,6))
df %>% 
  tidyr::uncount(maturity) %>%
  group_by(custno) %>%
  mutate(time = seq_along(time))
library(dplyr)
library(data.table)
df %>% 
    slice(rep(row_number(), maturity)) %>%
    mutate(time = rowid(custno))
df <- data.frame(custno = 1:3, time = 1, 
                 dept = c("A", "B", "A"),
                 maturity = c(5,4,6))