【发布时间】:2010-11-21 01:36:19
【问题描述】:
注意: 我更改了第一次发布时的示例。我的第一个示例过于简单,无法捕捉到真正的问题。
我有两个数据框,它们在一列中以不同的方式排序。我想匹配一列,然后合并第二列的值。第二列需要保持相同的顺序。
所以我有这个:
state<-c("IA","IA","IA","IL","IL","IL")
value1<-c(1,2,3,4,5,6)
s1<-data.frame(state,value1)
state<-c("IL","IL","IL","IA","IA","IA")
value2<-c(3,4,5,6,7,8)
s2<-data.frame(state,value2)
s1
s2
返回这个:
> s1
state value1
1 IA 1
2 IA 2
3 IA 3
4 IL 4
5 IL 5
6 IL 6
> s2
state value2
1 IL 3
2 IL 4
3 IL 5
4 IA 6
5 IA 7
6 IA 8
我想要这个:
state value1 value2
1 IA 1 6
2 IA 2 7
3 IA 3 8
4 IL 4 3
5 IL 5 4
6 IL 6 5
为了解决这个问题,我快要把自己逼疯了。似乎它应该是一个简单的下标问题。
【问题讨论】:
-
这个例子怎么样?例如,在这种情况下,状态 ID 始终匹配相同的值 1(IA == 2,IL == 1),因此只要状态 ID 在与 s1 相同。如果 value1 是 1:6,那就完全不同了。
-
非常好。我过度简化了我的例子。 IA 并不总是 ==2,所以它太简单了。我将编辑我的问题。