r - 从 Googlesheets 导入时,返回一个我无法在 R 中转换为日期的列表

标签 r google-sheets

当我从 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/

相关文章:

r - 如何创建具有四分位数的列?

r - 创建网络服务器 CRAN 存储库 - 目录结构故障排除

java - Google Sheets API 批量更新中的数据验证问题

google-apps-script - 谷歌表格 : INDIRECT() with a Range

r - dplyr 使用 case_when 改变新的动态变量

r - R 版本 3.2.2 下 arrangeGrob 的问题

google-apps-script - 当事件电子表格更改时调用事件

javascript - 在 Google 表格中使用 fontcolor() 在单元格中返回 HTML

pdf - 使用名称创建 PDF,而不是在驱动器中创建文件并重命名

r - 如何修改公式的左边?