当我从 GoogleSheets 导入时,其中一个变量以列表形式出现。这是一个示例:
> dataset$my_date[1:4]
[[1]]
[1] "2019-06-25 UTC"
[[2]]
[1] "2019-06-25 UTC"
[[3]]
[1] "2019-06-25 UTC"
[[4]]
[1] "2019-06-25 UTC"
但是当我尝试将此列表转换为日期时,它返回我:
> as.Date(dataset$my_date[1:4])
Error in as.Date.default(dataset$my_date[1:4]) :
do not know how to convert 'dataset$my_date[1:4]' to class “Date”
使用read_sheet()
函数读取时,是否可以将此变量设置为向量?
最佳答案
它是一个列表
并且根据?as.Date
x - The as.Date methods accept character strings, factors, logical NA and objects of classes "POSIXlt" and "POSIXct"
methods(as.Date)
#[1] as.Date.character as.Date.default as.Date.factor as.Date.IDate as.Date.numeric as.Date.POSIXct
#[7] as.Date.POSIXlt as.Date.vctrs_sclr* as.Date.vctrs_vctr*
由于 as.Date
没有 list
方法,因此我们需要将它们与 c
连接以转换为 向量
(通过 do.call
调用)
as.Date(do.call(c, dataset$my_date))
如果有NULL
元素,将其转换为NA
dataset$my_data[sapply(dataset$my_data, is.null)] <- NA
as.Date(do.call(c, dataset$my_date))
或者使用unlist
(如果它不是Datetime
类,即character
向量)
as.Date(unlist(dataset$my_date))
它可以被复制
lst1 <- list(Sys.time(), Sys.time())
as.Date(lst1)
Error in as.Date.default(lst1) : do not know how to convert 'lst1' to class “Date”
通过转换为矢量
as.Date(do.call(c, lst1))
#[1] "2020-09-13" "2020-09-13"
关于r - 从 Googlesheets 导入时,返回一个我无法在 R 中转换为日期的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63875387/