【发布时间】:2020-06-07 05:26:57
【问题描述】:
我有一个类似这样的数据表。
Firm Year Moveyear Address OriginAddress DestinationAddress
A 2000
A 2001 2001 15Grand_Ave 700Grand_Ave
A 2002
A 2003 2003 700Grand_Ave 20Washington_Ave
A 2004
B 2000
B 2001
B 2002 2002 2730State_st 40Washington_Ave
B 2003
B 2004
C
.
.
这是一个面板数据集,显示了每个公司多年的搬迁信息。我想通过使用 'OriginAddress' 和 'DestinationAddress' 列将地址信息添加(或分配)到 'Address' 列。
例如,15Grand_Ave 应该在 2000 年分配给公司 A 的地址列,因为它是公司在 2001 年搬到 700Grand_Ave 之前的原始地址。而 700Grand_Ave 应该在 2001 年和 2002 年分配给公司 A 的地址列,因为它是它的在 2003 年搬到 20Washington_Ave 之前的地址。
所以我想要的结果:
Firm Year Moveyear Address OriginAddress DestinationAddress
A 2000 15Grand_Ave
A 2001 2001 700Grand_Ave 15Grand_Ave 700Grand_Ave
A 2002 700Grand_Ave
A 2003 2003 20Washington_Ave 700Grand_Ave 20Washington_Ave
A 2004 20Washington_Ave
B 2000 2730State_st
B 2001 2730State_st
B 2002 2002 40Washington_Ave 2730State_st 40Washington_Ave
B 2003 40Washington_Ave
B 2004 40Washington_Ave
C
.
.
我猜我需要在 R 中使用 for-loop 和 ifelse 语句,但我在编码时遇到了麻烦。请与我分享任何想法。
【问题讨论】:
-
您好 Chicago2017,请在您的 data.frame/data.table 上调用
dput函数,然后将控制台的输出复制并粘贴到您的问题中。
标签: r for-loop if-statement