我想知道是否有办法创建a1,a2,a3 ...... a15但是在矩阵中给它一个[i,j]的位置(在R中)
for(i in 1:15)
{
for(j in 1:10)
{
assign(paste("a",i,sep="")),i)
}
}
例如:
With i=1: `a1[1,1]=1, a1[1,2]=1`
在下一个i = 2:a2[2,1]=2, a2=[2,2]=2
i=10: `a10[10,1]=10,a2[10,2]=10`
答案 0 :(得分:1)
不清楚你在寻找什么 - 它是一个包含你指出的值的矩阵吗?即。
m <- matrix(rep(1:10, each = 15), byrow = TRUE, ncol = 15)
rownames(m) <- paste0("a", 1:10)
> m
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
a1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
a2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
a3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
a4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
a5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
a6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
a7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
a8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
a9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
a10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
[,15]
a1 1
a2 2
a3 3
a4 4
a5 5
a6 6
a7 7
a8 8
a9 9
a10 10
或者您希望每个行都是向量?即。
vecs <- split(rep(1:10, each = 15), rep(1:10, each = 15))
names(vecs) <- paste0("a", seq_along(vecs))
vecs[1:3]
> vecs[1:3]
$a1
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
$a2
[1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
$a3
[1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
vecs
是您指明的向量的列表,这是存储这些数据的更好方式,因为您可以使用lapply()
等工具来处理这些数据单个操作中的向量。
答案 1 :(得分:1)
也许是这样的?
a <- array(dim=c(4,4,2))
for(i in 1:4)
{
a[i,i,] <- i
}
a[1,,]
# [,1] [,2]
# [1,] 1 1
# [2,] NA NA
# [3,] NA NA
# [4,] NA NA
a[3,,]
# [,1] [,2]
# [1,] NA NA
# [2,] NA NA
# [3,] 3 3
# [4,] NA NA