使用其他列中的信息复制数据框中的行

时间:2017-04-27 19:50:23

标签: r dataframe replication

我有以下数据框NewTests: enter image description here 问题:我想使用' duration'中的信息复制数据框中的行。柱。虽然在这种情况下复制因子是1,但它可以是2,3,4等。在复制行中,我想添加一个名为' Date'其中包含PromotionStartDate和PromotionEndDate列的信息。

E.g。在这种情况下,日期列应包含显示的条目的2017-04-01。但在另一种情况下,持续时间为2且PromotionStartDatae = 2017-03-01和PromotionEndDate = 2017-05-01,复制的行1应包含2017-03-01的日期列,复制的行2应包含2017-04日期栏中的-01。

我正在尝试使用以下解决方案来解决我的问题:

library(splitstackshape)
newConrtols=expandRows(NewTests,"duration",drop=FALSE)%>%
group_by(CustomerNumber,PromotionID,RewardAssigned,RunID,ModelID)%>%
mutate(Date=seq(as.Date(PromotionStartDate),as.Date(PromotionEndDate),by="month")[1:duration])

但这会产生错误:

Error in mutate_impl(.data, dots) : 'from' must be of length 1

我在解决方案中做错了什么?

1 个答案:

答案 0 :(得分:0)

这很简单,您只需使用以下示例选择正确的行。 假设我有一个像你一样的数据框架。

a=c(1,2,3,4)
b=c(a,b,c,d)
t=data.frame(a,b)

现在,如果我想要第二列,我通常会输入

t[2,]

现在我想要第二行我会输入

t[,2]

如果我想复制第五行,我会做

t[,5]=t[,2]

如果您希望将日期从PromotionDate列复制到FinalDate,您可以这一行:your_variable_with_the_dataframe[6,]=your_variable_with_the_dataframe[7,]