在R中循环使用表函数

时间:2017-11-04 23:19:12

标签: r loops

我是 R 的初学者。我对表函数有疑问。我有这样的结果:

table(my_vector)
1    2   3
11  23   7

我想从矩阵中提取元素:

从1到11为my_matrix[1:11,]

表格11 + 1到11 + 23为my_matrix[12:34,]

表格11 + 23 + 1至11 + 23 + 7为my_matrix[35:41,]

我怎么能用这个循环?

1 个答案:

答案 0 :(得分:0)

认为应该这样做

my_matrix <- matrix(rep(1:41, times=3), 41)
my_vector <- rep(1:3, times=c(11, 23, 7))
my_tab <- table(my_vector)

my_csum1 <- c(0, cumsum(my_tab)) + 1
my_csum2 <- cumsum(my_tab)

my_list <- list()
for (i in 1:length(my_csum2)) {
    my_list[[i]] <- my_matrix[my_csum1[i]:my_csum2[i], ]
}
lapply(my_list, range)
# [[1]]
# [1]  1 11

# [[2]]
# [1] 12 34

# [[3]]
# [1] 35 41