【发布时间】:2019-02-06 18:31:23
【问题描述】:
我有数据框 df1:
df1 <- data.frame(variable1=sample(letters[1:5], 5, replace=T),
variable2=sample(letters[1:5], 5, replace=T),
correlation=runif(5, 0,1))
其中包含 5 个变量之间的相关性,因此是一个 25 行 (5^2) 和 3 列的数据框,如下所示
df1 variable1 variable2 correlation
1 b b 1
2 b c 0.07478433
3 b d 0.81535674
4 e c 0.79187728
5 a e 0.97928430
等等。 另一个数据框 df2(5 行,每个变量一个,3 个列):
df2 <- data.frame(variable=sample(letters[1:5], 5, replace=F),
progr=1:5,
factor=sample(1:3, 5, replace=T))
包含每个变量的一些注释/信息。好像
df2 variable progr factor
1 b 1 3
2 d 2 3
3 c 3 1
4 e 4 2
5 a 5 2
我想在 df1 的每一行中添加 df2 中包含的信息,然后进行一些计算。 首先,我希望 df1 变成(为每个变量添加的信息):
variable1 progr1 factor1 variable2 progr2 factor2 correlation
1 b 1 3 b 1 3 1
2 b 1 3 c 3 1 0.07478433
3 b 1 3 d 2 3 0.81535674
4 e 4 2 c 3 1 0.79187728
5 a 5 2 e 4 2 0.97928430
然后我预期的最终结果是:
variable1 variable2 correlation same_factor distance
1 b b 1 1 0
2 b c 0.07478433 0 2
3 b d 0.81535674 1 1
4 e c 0.79187728 0 -1
5 a e 0.97928430 1 -1
在哪里: same_factor 是一个虚拟变量,如果 variable1 和 variable2 属于同一因子,则取值为 1,否则为 0 和距离:= progr2-progr1 任何帮助都非常感谢!非常感谢!
【问题讨论】:
标签: r