我正在尝试使用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”
答案 0 :(得分:2)
您的lapply
函数返回一个带有替换值的向量,而不是a
和b
修改后的Date
。试试这个:
lapply(a, function(x){
x$Date <- gsub(".{2}$","01",x$Date)
return(x)
})