【发布时间】:2020-03-15 00:43:35
【问题描述】:
我有两个数据框,一个 (df1) 看起来像这样:
CityYear City Year Value
NY2000 NY 2000 1.2
NY2005 NY 2005 1.0
NY2010 NY 2010 1.4
NY2015 NY 2015 NA
LA2000 LA 2000 0.9
LA2005 LA 2005 1.5
LA2010 LA 2010 1.3
LA2015 LA 2015 NA
SF2000 SF 2000 0.8
SF2005 SF 2005 1.7
SF2010 SF 2010 1.2
SF2015 SF 2015 1.3
...
还有很多其他城市。第二个数据框 (df2) 看起来像这样:
City1 City2 Connections
NY NY 0
NY LA 32
NY SF 28
NY DC 12
...
SF NY 28
SF LA 12
...
基本上将每个城市(有些甚至不在我的第一个数据集中)相互配对并提供它们的联系。请注意,每个城市和对重复两次(如 City1 和 City2)。
在df1 中,我想计算一个新变量Flow,它从下面的公式中取值(我认为这比用文字解释清楚得多,但如果有必要我可以这样做)。
我是 R 新手,我不知道从哪里开始。我知道(或相信)我需要一个 for 循环,但我不知道从那里去哪里。任何帮助将不胜感激。
编辑:用文字澄清公式,对于每个城市年的观察,我想取那一年每个其他城市的Value,乘以Connections两个城市,并将每个值相加。例如,对于 2000 年的纽约,我想将其与 LA 的联系乘以 2000 年 LA 的值,然后对 DC 等 2000 年的每个城市做同样的事情,并将结果相加得到一个 Flow NY2000 的值。
【问题讨论】:
-
我认为你需要用文字解释你的公式,至少我不明白。如果我理解正确,您想将第二个表中 City1 列中每个城市的所有连接相加,然后将这些值附加到第一个表中 City 列中的相应城市?
-
嗨,Jerry,您不需要 for 循环。如果假设您提供包含 NY 的 df1 的子集和 df2 的子集子集子集(df2,City1=="NY") 并向我们展示预期结果可能会更容易?
-
像@user2974951 我可以大致猜到,但是为了给你正确的解决方案,最好有一些数据。
-
df1中的城市和df2中两个城市的组合是什么关系?
-
@camille,
df2基本上只是给了我df1(以及一些)所有城市之间的连接数。
标签: r loops statistics match