我有一個名爲「會議」的字段,另一個名爲「會員」。每次會議都有幾位會員參加這個活動。我想要做的就是提取一張表,只是參加同一會議的「成員」的二元關係。如何創建基於第二個基於兩個單元格的組合的新表?
假設我們有參加者約翰,傑克,傑米和巴勃羅的「聯合國會議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