如何使用lappy替换字符串

时间:2019-04-20 00:00:21

标签: r lapply

我正在尝试使用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)


})

我希望发生的是将a $ Date和b $ Date的元素替换为“ 1900-08-01”。但是发生的是a和b被替换为“ 1900-08-01”

1 个答案:

答案 0 :(得分:2)

您的lapply函数返回一个带有替换值的向量,而不是ab修改后的Date。试试这个:


lapply(a, function(x){

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

    return(x)
})