[問題] 迴圈控制問題

作者: jerkoffme (摩德男孩)   2018-12-14 19:58:53
[問題類型]:
最近要交換禮物,想說用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]就輸出了,想了一個下午還是解不了阿,請大神救一下
作者: sw52099 (sw52099)   2018-12-14 20:20:00
不是你說的原因 是z被cbind了好幾次
作者: jerkoffme (摩德男孩)   2018-12-14 20:35:00
那請問有解嗎??
作者: celestialgod (天)   2018-12-14 20:48:00
https://pastebin.com/rhnj8Nsn不要想太難 慢慢mark就好
作者: andrew43 (討厭有好心推文後刪文者)   2018-12-14 20:48:00
只要cbind(x,y)[x!=y,]就好了吧,不用for loop喔不對。沒看懂最終目的。
作者: jerkoffme (摩德男孩)   2018-12-14 22:00:00
感謝,我想我大概了解了!!

Links booklink

Contact Us: admin [ a t ] ucptt.com