Mam listę wektorów na liście R, tak że każda pozycja listy zawiera 3 kolumny, np .:
d[[1]]
lon lat pr
1 -70 10 0
2 -70 9 0
3 -70 8 0
4 -70 7 0
5 -70 6 0
6 -70 5 0
d[[2]]
lon lat pr
1 -70 10 0.48
2 -70 9 0.00
3 -70 8 0.00
4 -70 7 0.00
5 -70 6 0.00
6 -70 5 0.16
i tak dalej...
Chcę uzyskać wszystkie pozycje 1, 3 i 6 wszystkich wektorów na liście i zapisać je w innej liście lub ramce danych, np.
list[[1]]
lon lat pr
1 -70 10 0
3 -70 8 0
6 -70 5 0
list[[2]]
lon lat pr
1 -70 10 0.48
3 -70 8 0.00
6 -70 5 0.16
itp...
Próbowałem trochę lapply i pochodnych bez powodzenia. Czy istnieje prostszy sposób na zrobienie tego inaczej niż zapętlenie wszystkich wartości indeksów?
Z góry dziękuję.
Odpowiedzi:
2 dla odpowiedzi № 1Za pomocą lapply
> lapply(mylist, function(x) x[c(1,3,6),])
[[1]]
lon lat pr
1 -70 10 0
3 -70 8 0
6 -70 5 0
[[2]]
lon lat pr
1 -70 10 0.48
3 -70 8 0.00
6 -70 5 0.16