как использовать lappy для замены строки - PullRequest
1 голос
/ 20 апреля 2019

Я пытаюсь использовать lapply для замены элементов строки в нескольких data.frames, содержащихся в списке.Когда я пытаюсь сделать это, заменяется весь data.frame, а не строка, содержащаяся в data.frame.

Воспроизводимый пример ниже:

a <- list( a  = data.frame(Date = c("1900-08-31"), Val = 1000),
           b  = data.frame(Date = c("1900-08-31"), Val = 1000) )

lapply(a, function(x){

    gsub(".{2}$","01",x$Date)


})

То, что я ожидалСлучается, что элементы $ Date и b $ Date заменяются на '1900-08-01'.Но происходит то, что a и b заменяются на «1900-08-01»

1 Ответ

3 голосов
/ 20 апреля 2019

Ваша функция lapply возвращает вектор с заменой вместо a и b с измененным Date. Попробуйте это:


lapply(a, function(x){

    x$Date <- gsub(".{2}$","01",x$Date)

    return(x)
})

...