让我们假设我有n个表:table_1,table_2,...,table_n。 我想创建如下所示的n个矩阵,但是我不知道如何使用for循环或lapply函数进行相同的操作:
matrice_WS_1 = cbind(tab_1$WS) %*% rbind(tab_1$WS)
matrice_WS_2 = cbind(tab_2$WS) %*% rbind(tab_2$WS)
matrice_WS_3 = cbind(tab_3$WS) %*% rbind(tab_3$WS)
.
.
.
matrice_WS_n = cbind(tab_n$WS) %*% rbind(tab_n$WS)
答案 0 :(得分:0)
将表放入列表中,并进行遍历:
tbl.list <- list(table_1, table_2, table_3, table_n)
mat.list <- setNames(
vector(mode = "list", length = length(tbl.list)),
nm = paste0("matrix_WS_",1:length(tbl.list))
)
for (i in 1:length(tbl.list)) {
dat = tbl.list[[i]]["WS"] #retain two dimensions
mat = as.matrix(dat) #convert to matrix
out = mat %*% t(mat) #transform data as desired
mat.list[[i]] <- out
}