【发布时间】:2012-10-19 03:26:38
【问题描述】:
我想知道如何使用循环(可能是 for 循环)对数据进行排序,如下所示。
[,1]
[1,] 179
[2,] 160
[3,] 136
[4,] 227
[5,] 217
[6,] 168
[7,] 108
[8,] 124
[9,] 143
[10,] 140
我尝试使用这样的循环:
for (i in 1:nrow(v)) {
for (j in i+1:nrow(v)) {
if (v[i] > v[j]) {
v[i] <- v[j]
}
else {
v[i] <- v[i]
}
}
}
v
但最后出现了一条错误消息:/
Error in if (chickwts[i, 1] > chickwts[j, 1]) { :
missing value where TRUE/FALSE needed
我知道这很简单,使用 order 来做,但作为 R 的初学者,我很好奇如何通过循环来做到这一点。希望有人可以提供帮助。谢谢!
【问题讨论】:
-
查看
sort、rank、order。您可以从> help(sort)查看帮助文件 -
实际上,我正试图在 if 语句之后表达出来。
for (i in nrow(v)) { for (j in i+1:nrow(v)) { if (v[i, 1] > v[j, 1]) {expression} } }我也尝试过搜索关键字,如排序、循环和排序,还检查了帮助文件。抱歉……