我有一个包含n行和d列的矩阵。例如,
n = 100; d = 3
mat = matrix(rnorm(n * d) ncol = d)
我需要获取矩阵的列并将其分配给变量x1,x2,...,xd。列数不会固定。
我尝试过拆分矩阵并使用mapply语句分配矩阵,但未发生分配:
nam = paste0("x", 1:d)
column_vectors = split(x, rep(1:ncol(x), each = nrow(x)))
mapply(FUN = assign, nam, column_vectors)
我可以用蛮力做到这一点,但必须有一种更简单,更清洁的方法。
nam = paste0("x", 1:d)
column_vectors = split(x, rep(1:ncol(x), each = nrow(x)))
for(i in seq_along(column_vectors)){
assign(nam[i], column_vectors[[i]])
}
答案 0 :(得分:1)
您可以尝试这种方法:
matList <- unlist(apply(mat, 2, list), recursive = FALSE)
names(matList) <- paste0("x", 1:d)
list2env(matList, envir = globalenv())