[问题] 循环控制问题

楼主: 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