大家好,我想根据时间从小到大安排我的活动.但我希望这是一个循环


x = c(12,34,5,6,7)
y = c("A","B","C","D","E")
for(i in 1:length(x)){
i = which.min(x)
d = x-x[i]
j = which.min(d[d>0])
fevent = i
nevent = j
print(fevent)
print(nevent)
x = x[-i]
y = y[-i]
}

输出

发烧痣C DD EE AA B

我不确定之后是否就是这样

> y[order(x)]
[1] "C" "D" "E" "A" "B"

如果你想要循环的代码,我建议使用while循环

while(length(y)>0) {
i <- which.min(x)
print(y[i])
x <- x[-i]
y <- y[-i]
j <- which.min(x)
print(y[j])
}

它给出

[1] "C"
[1] "D"
[1] "D"
[1] "E"
[1] "E"
[1] "A"
[1] "A"
[1] "B"
[1] "B"

如果你想保存输出,你可以尝试下面的代码

fevent <- nevent <- c()
while(length(y)>0) {
i <- which.min(x)
fevent <- c(fevent,y[i])
x <- x[-i]
y <- y[-i]
j <- which.min(x)
nevent <- c(nevent,y[j])
}
out <- cbind(fevent = fevent[1:length(nevent)],nevent)

它给出

> out
fevent nevent
[1,] "C"    "D"
[2,] "D"    "E"
[3,] "E"    "A"
[4,] "A"    "B"

相关内容

最新更新