gpt4 book ai didi

r - 应用 as.Date 函数将时间变量从整数更改为日期不起作用

转载 作者:行者123 更新时间:2023-12-05 04:16:51 26 4
gpt4 key购买 nike

我的问题是我有三列整数表示日期。如果我使用

as.Date(x,origin="1970-01-01")

对于每个单独的列,它都有效。但是,如果我将 sapply 用作

sapply(data,function(x)as.Date(x,origin="1970-01-01"))

它不起作用。关于如何有效解决问题的任何想法?可重现代码如下

data=data.frame(time1=c(10189,11655,10914,12013,10934),time2=c(11758,10696,9784,10725,11225))
sapply(data,function(x)as.Date(x,origin="1970-01-01"))

结果完全没有变化。但使用

as.Date(data$time1,origin="1970-01-01")

它可以工作。

最佳答案

使用lapply:

> lapply(data,function(x) as.Date(x,origin="1970-01-01"))
$time1
[1] "1997-11-24" "2001-11-29" "1999-11-19" "2002-11-22" "1999-12-09"

$time2
[1] "2002-03-12" "1999-04-15" "1996-10-15" "1999-05-14" "2000-09-25"

如果你想输出数据框,你可以使用as.data.frame():

> as.data.frame(lapply(data,function(x) as.Date(x,origin="1970-01-01")))
time1 time2
1 1997-11-24 2002-03-12
2 2001-11-29 1999-04-15
3 1999-11-19 1996-10-15
4 2002-11-22 1999-05-14
5 1999-12-09 2000-09-25

关于r - 应用 as.Date 函数将时间变量从整数更改为日期不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26207260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com