2017-11-04 17 views
0

私はRと非常に初心者です。私はテーブルの機能について質問があります。テーブル機能付きループR

table(my_vector) 
1 2 3 
11 23 7 

そして、私は行列から要素を抽出したい:私はこのような結果を持って

1から11までmy_matrix[12:34,]

など11 + 23のフォーム11 + 1

my_matrix[1:11,]などを

フォーム11 + 23 + 1から11 + 23 + 7としてmy_matrix[35:41,]

これでどのようにループできますか?

答えて

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 
を行うべきだと思います