如何将循环生成的材质保存到R中的环境中

如何将循环生成的材质保存到R中的环境中,r,R,我在R中编写了一个简单的循环,以使用常量字母生成96孔板的布局 for (alpha in LETTERS[1:8]){ print(paste(alpha, 1:12, sep="")) } 我如何修改它以将生成的图版保存为环境变量(理想情况下为矩阵)?我希望它直接创建环境变量,并避免使用save&read.table组合 df <- expand.grid(LETTERS[1:8], 1:12) v <- paste0(df[[1]], df[[2]]) m <- m

我在R中编写了一个简单的循环,以使用常量字母生成96孔板的布局

for (alpha in LETTERS[1:8]){
  print(paste(alpha, 1:12, sep=""))
}
我如何修改它以将生成的图版保存为环境变量(理想情况下为矩阵)?我希望它直接创建环境变量,并避免使用save&read.table组合

df <- expand.grid(LETTERS[1:8], 1:12)
v <- paste0(df[[1]], df[[2]])
m <- matrix(v, 8, 12)

> m
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] "A1" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" "A10" "A11" "A12"
[2,] "B1" "B2" "B3" "B4" "B5" "B6" "B7" "B8" "B9" "B10" "B11" "B12"
[3,] "C1" "C2" "C3" "C4" "C5" "C6" "C7" "C8" "C9" "C10" "C11" "C12"
[4,] "D1" "D2" "D3" "D4" "D5" "D6" "D7" "D8" "D9" "D10" "D11" "D12"
[5,] "E1" "E2" "E3" "E4" "E5" "E6" "E7" "E8" "E9" "E10" "E11" "E12"
[6,] "F1" "F2" "F3" "F4" "F5" "F6" "F7" "F8" "F9" "F10" "F11" "F12"
[7,] "G1" "G2" "G3" "G4" "G5" "G6" "G7" "G8" "G9" "G10" "G11" "G12"
[8,] "H1" "H2" "H3" "H4" "H5" "H6" "H7" "H8" "H9" "H10" "H11" "H12"

df使用
outer
功能:

nameMatrix <- outer(LETTERS[1:8], 1:12, paste, sep = "")
nameMatrix
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] "A1" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" "A10" "A11" "A12"
[2,] "B1" "B2" "B3" "B4" "B5" "B6" "B7" "B8" "B9" "B10" "B11" "B12"
[3,] "C1" "C2" "C3" "C4" "C5" "C6" "C7" "C8" "C9" "C10" "C11" "C12"
[4,] "D1" "D2" "D3" "D4" "D5" "D6" "D7" "D8" "D9" "D10" "D11" "D12"
[5,] "E1" "E2" "E3" "E4" "E5" "E6" "E7" "E8" "E9" "E10" "E11" "E12"
[6,] "F1" "F2" "F3" "F4" "F5" "F6" "F7" "F8" "F9" "F10" "F11" "F12"
[7,] "G1" "G2" "G3" "G4" "G5" "G6" "G7" "G8" "G9" "G10" "G11" "G12"
[8,] "H1" "H2" "H3" "H4" "H5" "H6" "H7" "H8" "H9" "H10" "H11" "H12"

nameMatrix首先,您可以使用
sapply()
在一行中快速轻松地完成此操作

m1
m2
是以下矩阵:


有点不清楚。
t(sappy(字母[1:8],paste0,1:12])
你想要什么?我想他想要这个转置,t(sappy(字母[1:8],paste0,1:12])达尔文是对的,但是理想的情况是我希望用一个循环来编写它们,然后尽可能保存到环境中。
sappy()
是一个循环。你可以分配结果。为什么要让事情变得更难呢?
li <- setNames(vector("list", 96), nameMatrix)
head(li)
$A1
NULL

$B1
NULL

$C1
NULL

$D1
NULL

$E1
NULL

$F1
NULL
m1 <- t(sapply(LETTERS[1:8], paste0, 1:12, USE.NAMES = FALSE))
m2 <- matrix("", 8, 12)
for(i in 1:8) {
    m2[i, ] <- paste0(LETTERS[i], 1:12)
}

identical(m1, m2)
# [1] TRUE
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] "A1" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" "A10" "A11" "A12"
[2,] "B1" "B2" "B3" "B4" "B5" "B6" "B7" "B8" "B9" "B10" "B11" "B12"
[3,] "C1" "C2" "C3" "C4" "C5" "C6" "C7" "C8" "C9" "C10" "C11" "C12"
[4,] "D1" "D2" "D3" "D4" "D5" "D6" "D7" "D8" "D9" "D10" "D11" "D12"
[5,] "E1" "E2" "E3" "E4" "E5" "E6" "E7" "E8" "E9" "E10" "E11" "E12"
[6,] "F1" "F2" "F3" "F4" "F5" "F6" "F7" "F8" "F9" "F10" "F11" "F12"
[7,] "G1" "G2" "G3" "G4" "G5" "G6" "G7" "G8" "G9" "G10" "G11" "G12"
[8,] "H1" "H2" "H3" "H4" "H5" "H6" "H7" "H8" "H9" "H10" "H11" "H12"