我试图用相当多的数据制作10个不同的向量。下面的代码工作正常,直到我想对向量进行排序。我知道我缺少某些东西,但我不足以理解它是什么。 希望有人能帮忙。
for(i in 1:10) {
rnd <- runif(1, 1000, 60000)
nam <- paste("vec", i, sep = "")
assign(nam, rweibull(rnd, scale=10, shape = 7))
nam <- sort(nam)
}
答案 0 :(得分:1)
nam
是变量的名称,而不是变量本身,因此,最后一行需要更改为:
assign(nam, sort(get(nam)))
或者删除最后一行并将第二行更改为:
assign(nam, sort(rweibull(rnd, scale=10, shape = 7)))
更好的方法可能是创建向量的单个列表L
。然后L[[i]]
指的是ith。
L <- replicate(10, sort(rweibull(runif(1, 1000, 60000), scale = 10, shape = 7)))
请注意,每次您执行上述任意操作时,随机数都会更改,因此请设置种子,例如
set.seed(123)
在运行代码之前,如果希望能够在多次运行时准确地复制代码。
答案 1 :(得分:0)
在排序之前,您可能需要从nam获取值。
for(i in 1:10) {
rnd <- runif(1, 1000, 60000)
nam <- paste("vec", i, sep = "")
assign(nam, rweibull(rnd, scale=10, shape = 7))
assign(nam, sort(get(nam)))
}