gpt4 book ai didi

r - 将日期转换为数据框中的字符

转载 作者:行者123 更新时间:2023-12-04 14:25:13 25 4
gpt4 key购买 nike

我想将日期列(Date、POSIXct、POSIXt)转换为数据框中的字符列。例如,我有这个数据框。

df <- data.frame(date = Sys.Date(), time = Sys.time(), val = 1)

我可以轻松地使用这样的手动方式将日期列转换为字符列。
df$date <- as.character(df$date)
df$time <- as.character(df$time)

有什么方法可以将它们整体转换而无需一一指定日期列?我如何使用 lapply 转换它们或 sapply功能?

最佳答案

首先,做一个更完整的例子,混合数据类型。然后,确定哪些属于类 DatePOSIXt .最后,只修改感兴趣的那些。

df <- data.frame(date = Sys.Date(), time = Sys.time(), x = 1, A = "Test")

inx <- sapply(df, function(x) inherits(x, "Date") || inherits(x, "POSIXt"))
df[inx] <- lapply(df[inx], as.character)
str(df)
#'data.frame': 1 obs. of 4 variables:
# $ date: chr "2017-11-05"
# $ time: chr "2017-11-05 08:30:19"
# $ x : num 1
# $ A : Factor w/ 1 level "Test": 1

请注意其他日期/时间类,例如 POSIXctPOSIXlt都继承自类 POSIXt所以你只需要测试后者。

关于r - 将日期转换为数据框中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47119491/

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