【发布时间】:2011-09-26 11:49:38
【问题描述】:
我有一个这样的输入数据框(真实的非常大,所以我想做得更快):
df1 <- data.frame(A=c(1:5), B=c(5:9), C=c(9:13))
A B C
1 1 5 9
2 2 6 10
3 3 7 11
4 4 8 12
5 5 9 13
我有一个带有这样替换代码的数据框(这里的条目可能超过 df1):
df2 <- data.frame(X=c(1:15), Y=c(101:115))
X Y
1 1 101
2 2 102
3 3 103
4 4 104
5 5 105
6 6 106
7 7 107
8 8 108
9 9 109
10 10 110
11 11 111
12 12 112
13 13 113
14 14 114
15 15 115
通过将 df2$X 与 df1$A 和 df1$B 中的值匹配,我想通过将 df1$A 和 df1$B 替换为 df2$Y 中的相应值来获得一个 new_df1,即得到这个 new_df1
A B C
1 101 105 9
2 102 106 10
3 103 107 11
4 104 108 12
5 105 109 13
由于我的数据框非常大,您能否给我一些指导如何在 R 中更快地做到这一点?非常感谢。
【问题讨论】:
-
很难提出一种更快 的方法来执行此操作,除非我们知道您已经尝试过这样做并且发现它太慢了。另外,我们可以假设 df2$X 中的值总是按照您的示例中的顺序排列吗?