【发布时间】:2016-08-06 21:15:08
【问题描述】:
我有一个这样的data.frame:
x1 <- data.frame(id=1:3,item=c("A","B","A","B","C","D"))
x1[order(x1$item),]
id item
1 1 A
3 3 A
2 2 B
4 1 B
5 2 C
6 3 D
我想得到:
id1=c(1,2,1,3,2,3)
id2 = c(2,1,3,1,3,2)
A=c(0,0,1,1,0,0)
B=c(1,1,0,0,0,0)
C = 0
D=0
datawanted <- data.frame(id1,id2,A,B,C,D)
id1 id2 A B C D
1 1 2 0 1 0 0
2 2 1 0 1 0 0
3 1 3 1 0 0 0
4 3 1 1 0 0 0
5 2 3 0 0 0 0
6 3 2 0 0 0 0
如果 person1 和 person2 都有 B,那么在 datawanted 数据框中,A 列得到 1,否则得到 0。
有人可以给我一些R中的建议或功能来解决这个问题吗?
【问题讨论】:
-
id2的逻辑是什么?
-
id2 和 id1 一样,person1 和 person2 在 B 上有一个联系人,就这样吧。
-
datawanted的第5行和第6行的逻辑是什么? -
person2 和 person3 没有联系,所以表示零