[問題] 分組問題

看板R_Language作者 (sam)時間7年前 (2018/02/21 18:55), 7年前編輯推噓0(007)
留言7則, 3人參與, 7年前最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 請把以下不需要的部份刪除 使用者(已經有用R 做過不少作品) [問題敘述]: 請簡略描述你所要做的事情,或是這個程式的目的 想計算同個類組的比例 舉例來說 > V1=c( "A","A","A","A","B", "B" ,"C", "C") > V2= c( "A2","A3","A4","A5","A1", "B1" ,"A1", "C1") > DTTEST <- data.frame(V1,V2) > DTTEST V1 V2 1 A A2 2 A A3 3 A A4 4 A A5 5 B A1 6 B B1 7 C A1 8 C C1 我想看V2這個欄位中分群的關係,好比說A1出現兩次有跟B1跟C1同群過 那是否有函數可以呈現以下 A1 A2 A3 A4 A5 B1 C1 A1 2 0 0 0 0 1 1 A2 0 1 1 1 1 0 0 A3 0 0 1 1 1 0 0 . . . B1 1 0 0 0 0 1 0 ----------------------------------------------------------------- 嘗試C大的方法結果如下 > table(DTTEST$V1, DTTEST$V2) A1 A2 A3 A4 A5 B1 C1 A 0 1 1 1 1 0 0 B 1 0 0 0 0 1 0 C 1 0 0 0 0 0 1 有辦法像我上面想呈現的那樣嗎? A1 A2 A3 A4 A5 B1 C1 A1 2 0 0 0 0 1 1 A2 0 1 1 1 1 0 0 A3 0 0 1 1 1 0 0 . . . B1 1 0 0 0 0 1 0 還是需要再加上那些函數轉成以下形式 謝謝 ------------------------------------------------- 後來我想了一下不知道這樣方法可否? 利用矩陣的關係 table(DTTEST$V2, DTTEST$V1) %*% table(DTTEST$V1, DTTEST$V2) 謝謝 類似相關性的呈現,謝謝 [程式範例]: [環境敘述]: [關鍵字]: 分組關係 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.51.152.20 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1519210528.A.F96.html

02/21 18:58, 7年前 , 1F
table(df$V1, df$V2)
02/21 18:58, 1F
※ 編輯: huangsam (123.51.152.20), 02/22/2018 09:30:49

02/22 10:36, 7年前 , 2F
apply(df2, 2, function(x) if(sum(x)-1) {colSums(d
02/22 10:36, 2F

02/22 10:36, 7年前 , 3F
f2[x>0,])} else {df2[x>0,]} )
02/22 10:36, 3F
※ 編輯: huangsam (123.51.152.20), 02/22/2018 10:50:38 謝謝x大提供!!!! ※ 編輯: huangsam (123.51.152.20), 02/22/2018 10:53:20

02/22 11:16, 7年前 , 4F
如果每筆資料都是 unique, 矩陣乘法可以, 沒想到 @@
02/22 11:16, 4F

02/22 11:17, 7年前 , 5F
如果有可能重複的話, 我的結果還要再轉置, 忘記了
02/22 11:17, 5F

02/22 11:22, 7年前 , 6F
x大謝謝你啊!!!!!!
02/22 11:22, 6F

02/22 19:55, 7年前 , 7F
喔喔,原來我沒看懂你要什麼XDD
02/22 19:55, 7F
文章代碼(AID): #1QZL0W-M (R_Language)
文章代碼(AID): #1QZL0W-M (R_Language)