我有一个data.frames列表,我想更改data.frame的一列的类(从因素到日期)。我试图使用lapply然后,原始列表只包含该列(而不是整个data.frame)。我不明白这个行为......为了解决这个问题,我使用了一个共同的循环,但我想知道是否有人可以提出任何建议。 比方说,我有这个简单的数据:
m1 <- data.frame("date"=c("2010-02-03","2010-01-05"),"value"=c(5,3))
m2 <- data.frame("date"=c("2010-02-03","2010-01-05"),"value"=c(1,3))
mylist <- list(m1,m2)
#change date
newlist <- lapply(mylist, function(x) as.Date(x$date))
新名单只有日期.. 有没有办法使用lapply ...我正在使用大型数据集,通常lapply工作正常,但在这种情况下,我不知道我做错了什么。
非常感谢。
答案 0 :(得分:2)
我们可以使用transform
lapply(mylist, transform, date = as.Date(date))
答案 1 :(得分:1)
在您的功能中,您必须先更改date
列,然后返回x
newlist <- lapply(mylist, function(x) {
x$date <- as.Date(x$date)
x
})
newlist
# [[1]]
# date value
# 1 2010-02-03 5
# 2 2010-01-05 3
#
# [[2]]
# date value
# 1 2010-02-03 1
# 2 2010-01-05 3