看板 R_Language 關於我們 聯絡資訊
[問題類型]: 最近要交換禮物,想說用R寫一個配對的程式 [軟體熟悉度]: 使用了R半年,會基礎ggplot2和tidyverse [問題敘述]: 假設9個人,要交換禮物,條件是自己不能送給自己。 我分別把送禮人和被送禮人,寫成兩個c()的向量 ,最後能tibble成一個表格 [程式範例]: library(tidyverse) library(dplyr) library(mailR) x <- sample(c("A", "B", "C", "D", "E", "F", "G", "H", "I"), 9) y <- sample(c("A", "B", "C", "D", "E", "F", "G", "H", "I"), 9) for (i in 1:9){ if(x[i] != y[i]){ z <- cbind(x, y) } } z [環境敘述]: window 10,最新版R studio x y [1,] "F" "F" [2,] "C" "I" [3,] "H" "C" [4,] "I" "D" [5,] "D" "A" [6,] "B" "B" [7,] "A" "E" [8,] "G" "G" [9,] "E" "H" 輸出結果就還是會重複,我認為問題應該是for迴圈無法用多個邏輯判斷式, 應該是他判斷x[1] != y[1]就輸出了,想了一個下午還是解不了阿,請大神救一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.112.167 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1544788736.A.3C0.html
sw52099: 不是你說的原因 是z被cbind了好幾次 12/14 20:20
jerkoffme: 那請問有解嗎?? 12/14 20:35
celestialgod: https://pastebin.com/rhnj8Nsn 12/14 20:48
celestialgod: 不要想太難 慢慢mark就好 12/14 20:48
andrew43: 只要cbind(x,y)[x!=y,]就好了吧,不用for loop 12/14 20:48
andrew43: 喔不對。沒看懂最終目的。 12/14 21:22
jerkoffme: 感謝,我想我大概了解了!! 12/14 22:00