我是 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,]
我怎么能用这个循环?
答案 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