【发布时间】:2019-09-17 20:51:23
【问题描述】:
我有一个嵌套的项目列表,因此我将 3 个单独的列表组合为一个。我想对所有列表中存在的特定列进行更改。我在下面有更多详细信息
X
$`Manufacturing`
Stage Days.Added Start.Date End.Date
Planning 2 1968-12-01 NA
Building 14 NA NA
Testing 3 NA NA
Implementation 15 NA NA
$`Project Analysis`
Stage Days.Added Start.Date End.Date
Initial Review 3 1968-12-01 NA
Building 14 NA NA
User Testing 20 NA NA
Implementation 15 NA NA
User Review 7 NA NA
Final Analysis 4 NA NA
lapply(X, '[', 'End.Date') 给我:
$`Manufacturing`
End.Date
NA
NA
NA
NA
$`Project Analysis`
End.Date
NA
NA
NA
NA
NA
NA
我想创建一个循环,其中“End.Date”列是第一行的“Start.Date”和“Days.Added”列的添加。结果值将是第二行的“Start.Date”条目,该条目将添加“Days.Added”列以生成第二行的新“End.Date”,依此类推。所以基本上是这样的:
$`Manufacturing`
Stage Days.Added Start.Date End.Date
Planning 2 1968-12-01 1968-12-03
Building 14 1968-12-03 1968-12-17
Testing 3 1968-12-17 1968-12-20
Implementation 15 1968-12-20 1969-01-04
$`Project Analysis`
Stage Days.Added Start.Date End.Date
Initial Review 3 1968-12-01 1968-12-04
Building 15 1968-12-04 1968-12-19
User Testing 20 1968-12-19 1969-01-08
Implementation 15 1969-01-08 1969-01-23
User Review 7 1969-01-23 1969-01-30
Final Analysis 4 1969-01-30 1969-02-03
我如何实现这一目标?
【问题讨论】:
-
我觉得你需要
lapply(X, transform, End_Date = Start.Date[1] + Days.Added) -
如果你需要这两列
lapply(X, transform, Start_Date = Start_Date[1] + Days_Added, End_Date = Start.Date[1] + Days.Added)
标签: r