2016-05-31 2 views
1

Я хотел бы заменить первое значение в каждом элементе списка вторым значением из того же элемента.Обновить первое значение в каждом элементе списка в R

Например, я хотел бы функцию преобразования LST в lst2

lst<-list(c(0:4),c(5:9)) 
lst 

lst2<-list(c(1, c(1:4)),c(6,c(6:9))) 
lst2 

Я знаю, что я могу сделать

lst[[1]][1]=lst[[1]][2] 
lst[[2]][1]=lst[[2]][2] 

Но я хотел бы функцию для перебора всех элементов списка. Я пробовал различные вещи (все неудачные) с lapply, такие как:

lapply(list, function(x) x[1]=x[2]) 

ответ

4

Мы можем использовать lapply для цикла по list, и мы должны вернуть x если мы используем вызов анонимной функции.

lstN <- lapply(lst, function(x) {x[1] <- x[2] 
         x}) 
identical(lst2, lstN) 
#[1] TRUE 
Смежные вопросы