作者jerkoffme (摩德男孩)
看板R_Language
標題[問題] 迴圈控制問題
時間Fri Dec 14 19:58:53 2018
[問題類型]:
最近要交換禮物,想說用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: 不要想太難 慢慢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