使用 lapply 更改列表元素中列的格式
Posted
技术标签:
【中文标题】使用 lapply 更改列表元素中列的格式【英文标题】:change format of a column in a element of a list with lapply 【发布时间】:2017-12-08 15:18:36 【问题描述】:我有一个 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))
newlist 将只有日期.. 有什么方法可以使用 lapply 吗?我正在处理大型数据集,通常 lapply 可以正常工作,但在这种情况下,我不知道我做错了什么。
非常感谢。
【问题讨论】:
lapply(mylist, transform, date = as.Date(date))
谢谢!我不知道变换,完美。
【参考方案1】:
我们可以使用transform
lapply(mylist, transform, date = as.Date(date))
【讨论】:
【参考方案2】:在您的函数中,您必须先更改 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
【讨论】:
以上是关于使用 lapply 更改列表元素中列的格式的主要内容,如果未能解决你的问题,请参考以下文章