我有一个名为“会议”的字段,另一个名为“会员”。每次会议都有几位会员参加这个活动。我想要做的就是提取一张表,只是参加同一会议的“成员”的二元关系。如何创建基于第二个基于两个单元格的组合的新表?
假设我们有参加者约翰,杰克,杰米和巴勃罗的“联合国会议1945”。该表将不得不给我:
John, Jack
John, Jamie
John, Pablo
Jack, Jamie
Jack, Pablo
Jamie, Pablo
我有一个名为“会议”的字段,另一个名为“会员”。每次会议都有几位会员参加这个活动。我想要做的就是提取一张表,只是参加同一会议的“成员”的二元关系。如何创建基于第二个基于两个单元格的组合的新表?
假设我们有参加者约翰,杰克,杰米和巴勃罗的“联合国会议1945”。该表将不得不给我:
John, Jack
John, Jamie
John, Pablo
Jack, Jamie
Jack, Pablo
Jamie, Pablo
你可能不要求在为r的解决方案,但使用SPSS对这个问题将是相当不好受(如果可能的话)。
让我们假设你有一个CSV文件(会议Participants.csv),它看起来是这样的:
Conference,Participant
UN Conference 1945,John
UN Conference 1945,Jack
UN Conference 1945,Jamie
UN Conference 1945,Pablo
UN Conference Kyoto 1997,Ben
UN Conference Kyoto 1997,Katie
UN Conference Kyoto 1997,Julie
在R您能解决您的难题下面的方式。
library(data.table)
library(combinat) # you probably have to install this package first
# read csv-file
df <- read.csv("Conference-Participants.csv")
# split the data by conferences
subs <- split(df, df$Conference)
# create new data frame with "Conference" and all possible
# pair combinations of participants ("Participant 1", "Participant 2")
df2 <- rbindlist(
lapply(subs,
function(sub) as.data.frame(cbind(
as.character(sub$Conference[1]),
t(combn(sub$Participant,2))
))
)
)
# Set the column names
setnames(df2, c("Conference", "P1", "P2"))
# store the new data frame to a csv-file
write.csv(df2, "Conference-Pairs.csv")
的结果则是这样的
Conference P1 P2
1: UN Conference 1945 John Jack
2: UN Conference 1945 John Jamie
3: UN Conference 1945 John Pablo
4: UN Conference 1945 Jack Jamie
5: UN Conference 1945 Jack Pablo
6: UN Conference 1945 Jamie Pablo
7: UN Conference Kyoto 1997 Ben Katie
8: UN Conference Kyoto 1997 Ben Julie
9: UN Conference Kyoto 1997 Katie Julie
非常感谢。我会试一下! – 2015-02-14 18:56:13
致敬:你介意告诉什么导致downvote?谢谢。 – mirirai 2015-02-14 22:07:38
对不起!而不是投票我投了下来!我试图扭转它。 – 2015-02-16 01:30:59
你想从然而,许多的两个组合都通过'会议members'? – pnuts 2015-02-11 20:35:55
实际上一点都不清楚,因为你的例子与我无关(对我而言)?也许尝试重新措辞。 – 2015-02-11 21:15:10
所以你想要的是,每个会议参与者的所有k-组合(k = 2)(没有重复和无论顺序如何(对于这种类型的数学观点,请参见http:// en .wikipedia.org /维基/组合))? – mirirai 2015-02-12 15:00:35