【发布时间】:2015-02-25 13:45:46
【问题描述】:
如何将数据框中的第 n 列与列子集的数据框中的第 n-1 列相加?
例如我有一个如下的数据框:
ID C1 C2 C3
1 2000-12-24 3d 2d
2 2000-12-24 2d 1d
我希望 R 执行以下操作:
ID C1 C2 C3
1 2000-12-24 2000-12-24+3d=2000-12-27 2000-12-27+2d=2000-12-29
2 2000-12-24 2000-12-24+2d=2000-12-26 2000-12-26+1d=2000-12-27
所以最终的数据框看起来像这样:
ID C1 C2 C3 ...
1 2000-12-24 2000-12-27 2000-12-29
2 2000-12-24 2000-12-26 2000-12-27
更新:
数据已相应生成:
library(plyr)
library(lubridate)
library(reshape2)
Heterotransaction <- rgamma(2,shape=3 , scale=1)
ID <- list(1:2)
Elog <- data.frame(ID,Heterotransaction)
Elog$fist_transaction <- "2000-12-24"
Elog$fist_transaction <- as.Date(Elog$fist_transaction, "%Y-%m-%d")
Heterotransaction <- rgamma(2,shape=3 , scale=1)
f.transaction <- function(x){
y<- (rexp(2,x))
duration(y, units = "years")
}
tbtrans<-ldply(Heterotransaction, f.transaction)
purchases<-data.frame(ID,tbtrans)
Elognew<- merge.data.frame(Elog, purchases)
【问题讨论】:
-
您的原始数据集中是否有
3d2d等或只是32。 -
由于我不习惯 R 我不知道如何解释它们是什么格式,但希望上面的更新代码能给你所需的信息。
-
请检查更新。正如您在第二组示例中展示的那样,我得到了预期的输出。
标签: r function dataframe sum multiple-columns