当 R + googlesheets 添加到 Google 表格时,整数被解释为日期
Integer interpreted as date when added to Google Sheets by R + googlesheets
我正在尝试通过来自 googlesheets 的 gs_add_row
将值对(日期、值)添加到 Google 表格。这成功了,除了两个值都显示为 Google 工作表上的日期。
我事先检查了 "value" 以确保它符合预期(例如 50),但表格显示日期 (1970-02-20)。
我什至尝试将表格中的单元格格式设置为 "Numbers" 而不是 "Automatic",但没有任何区别。
有没有办法指定变量类型?
编辑
示例代码:
library(lubridate)
library(googlesheets)
library(dplyr)
#URL <- "[some 'published to the web' Google Sheet URL]"
dt <- ymd(today())
val <- 50
URL %>%
gs_url() %>%
gs_add_row(ws=3, input = c(dt, val))
问题是由于使用 c
将 dt
和 val
连接成一个向量。
当您使用 c
时,输出类型由层次结构 NULL < raw < logical < integer < double < complex < character < list < expression
中组件的最高类型决定。因此,在这种情况下,连接(使用 c
)的输出是 Date
class。
如果您已完成 c(val, dt)
,则输出类型将为 numeric
.
你最好的选择是:
URL %>%
gs_url() %>%
gs_add_row(ws=3, input = c(as.character(dt), val))
如果这在第一次时不起作用,您可能需要删除旧的 Sheet,使用相同的数据创建一个新的 Sheet,然后 运行 上的代码新 sheet.
谢谢!
我正在尝试通过来自 googlesheets 的 gs_add_row
将值对(日期、值)添加到 Google 表格。这成功了,除了两个值都显示为 Google 工作表上的日期。
我事先检查了 "value" 以确保它符合预期(例如 50),但表格显示日期 (1970-02-20)。
我什至尝试将表格中的单元格格式设置为 "Numbers" 而不是 "Automatic",但没有任何区别。
有没有办法指定变量类型?
编辑 示例代码:
library(lubridate)
library(googlesheets)
library(dplyr)
#URL <- "[some 'published to the web' Google Sheet URL]"
dt <- ymd(today())
val <- 50
URL %>%
gs_url() %>%
gs_add_row(ws=3, input = c(dt, val))
问题是由于使用 c
将 dt
和 val
连接成一个向量。
当您使用 c
时,输出类型由层次结构 NULL < raw < logical < integer < double < complex < character < list < expression
中组件的最高类型决定。因此,在这种情况下,连接(使用 c
)的输出是 Date
class。
如果您已完成 c(val, dt)
,则输出类型将为 numeric
.
你最好的选择是:
URL %>%
gs_url() %>%
gs_add_row(ws=3, input = c(as.character(dt), val))
如果这在第一次时不起作用,您可能需要删除旧的 Sheet,使用相同的数据创建一个新的 Sheet,然后 运行 上的代码新 sheet.
谢谢!