我目前有一个列表数组和一个用这段代码生成的矩阵:
require(gtools)
FiveStates = array(list(NULL), c(32,2))
four.1 = combinations(5,4,c(LETTERS[1:5]))
four.2 = four.1[nrow(four.1):1,]
我希望将数组FiveStates中第一列的第2-6行替换为矩阵中的所有五行.2。elementwise。如何在不必分别更换每一行的情况下执行此操作?
编辑:我想让FiveStates [2,1]显示" B"," C"," D",&#34 ; E&#34 ;; FiveStates [3,1]显示" A"," C"," D"," E&#34 ;;依此类推,以便FiveStates第一列中的第2到第6个条目具有与4行[2:6,]匹配的向量。
(另外,你需要使用combination()函数的包现在在代码中。很抱歉。)
答案 0 :(得分:0)
您可以使用常规矩阵索引替换使用列表填充的矩阵块:
FiveStates[2:6, 1] <- lapply(1:nrow(four.1), function(x) four.2[x, ] )
FiveStates[2:6, 1]
[[1]]
[1] "B" "C" "D" "E"
[[2]]
[1] "A" "C" "D" "E"
[[3]]
[1] "A" "B" "D" "E"
[[4]]
[1] "A" "B" "C" "E"
[[5]]
[1] "A" "B" "C" "D"