2013-07-04 4 views
2

процедура, которую я бегу в R генерирует следующий список для меня:Изменение длины списка в R

[[1]] 
[1] 280.9391 

[[2]] 
[1] 36.54459 

[[3]] 
[1] 51.71247 

[[4]] 
[1] 287.1063 

[[5]] 
[1] 45.17028 

[[6]] 
[1] 35.16948 

[[7]] 
[1] 274.397 

[[8]] 
[1] 62.25498 

[[9]] 
[1] 33.58602 

[[10]] 
[1] 242.2277 

[[11]] 
[1] 41.12829 

[[12]] 
[1] 74.42262 

[[13]] 
[1] 259.5208 

[[14]] 
[1] 165.8883 

[[15]] 
[1] 56.75454 

[[16]] 
[1] 272.4801 

[[17]] 
[1] 68.79717 

[[18]] 
[1] 49.54563 

[[19]] 
[1] 285.2728 

[[20]] 
[1] 44.96193 

[[21]] 
[1] 49.5873 

[[22]] 
[1] 267.3547 

[[23]] 
[1] 150.1787 

[[24]] 
[1] 66.00528 

[[25]] 
[1] 278.7723 

[[26]] 
[1] 62.21331 

[[27]] 
[1] 82.04823 

[[28]] 
[1] 274.3136 

[[29]] 
[1] 51.92082 

[[30]] 
[1] 64.21347 

Я хотел бы длину списка, чтобы быть 3, а не 30, с каждым значением является в одной из трех категорий. Например, первое значение [[1]] было бы в первой категории, [[2]] было бы вторым, [[3]] было бы третьим, [[4]] было бы первым, [[ 5]] будет второй, [[6]] будет третьей и т. Д. Каждая из трех категорий будет иметь 10 значений, связанных с ними. Мне трудно понять, как это сделать, и мне было интересно, может ли кто-нибудь помочь. Заранее спасибо.

--Neil

ответ

3

Попробуйте это:

split(unlist(ll), (seq_along(ll) - 1L) %% 3L) 

где ll ваш список.

+0

Это сработало отлично! Благодарю. Хотя порядок категорий отключен. Например, первая категория (т. Е. Значения [[1]], [[4]], [[7]] и т. Д.) Обозначена как вторая. Есть ли способ их заказать? – user2359494

+0

О! Ты читаешь мои мысли. Благодаря! – user2359494

Смежные вопросы