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