r - 尝试使用循环对列表中的向量进行排序时的奇怪行为
问题描述
我想对列表中的向量进行排序。我尝试了以下方法:
test <- list(c(2,3,1), c(3,2,1), c(1,2,3))
for (i in length(test)){
test[[i]] <- sort(test[[i]])
}
test
返回列表不变(向量未排序):
[[1]]
[1] 2 3 1
[[2]]
[1] 3 2 1
[[3]]
[1] 1 2 3
但是,当我在循环外手动排序时,订单将被存储:
test[[1]]
[1] 2 3 1
test[[1]] <- sort(test[[1]])
test[[1]]
[1] 1 2 3
为什么循环中的行为不同?我希望循环将三个向量 c(1,2,3) 存储在列表中。我错过了什么?
解决方案
我只是认为循环只循环一个元素,因为length(test) = 3
. 因此我应该使用for (i in 1:length(test))
.
推荐阅读
- java - 减去圆弧的内半径/部分以实现环形进度条
- ruby - 将数组的元素添加到数组数组中每个数组的特定索引
- apache-kafka - Kafka - 保留期参数
- swift - 如何在 iOS 应用中存储和更新 .p12 证书?
- git - 为什么每次打开新的终端窗口都必须重新输入这些命令才能让 Git 工作?
- python - 当 .replace 和 .strip 不起作用时如何从字符串中删除空格
- python - Github 上未显示 Jupyter 笔记本中的交互式绘图
- python-2.7 - 如何在遇到第一个数字后删除字符串中的字符
- spring - 我可以将流口水 .drl 文件存储在 bitbucket 存储库中并在运行时使用 spring boot 访问它们吗
- batch-file - 如何用批处理文件计算 .txt 文件中所有数字的总数