我很难理解日期是如何处理的。
我知道Excel处理的日期与R不同,我可以通过R函数将日期作为一个数值来阅读。例如,在工作簿表"Sheet1“单元格A1中,我可以输入日期(例如2018年4月11日)为数字43201、任何日期格式(如4/11/2018或11-4月18日)或格式化为文本。
在函数.R脚本中,我可以保存一个函数:
test_date1 <- function(x){
print(str(x))
return(x)
}
当我在excel =R.test_date1(A1)
中调用这个函数时,R会将其读取为一个数值变量。如果我在A1:A2中有一个日期范围,并使用上面的函数,那么我得到了一个数字向量。我很高兴这一点,并可以转换为R日期使用as.Date(x, origin="1899-12-30", tz='UTC')
。
现在,当我尝试在BERT中使用脚本时,当它们没有被格式化为值时,我无法读取日期。例如,如果单元格A1被格式化为数字i,我将执行以下脚本:
test_value <- EXCEL$Application$get_Sheets()$get_Item('Sheet1')$get_Range('A1')$get_Value()
我的test_date1
变量持有一个数字,我可以再次转换为一个R日期。但是,当A1被格式化为excel中的日期时,相同的脚本返回一个NULL
值。
最终,我希望能够引用excel中的范围,并使用时间序列进行ggplot2绘图和统计分析。但我在处理约会上有问题。
发布于 2018-04-11 22:30:31
这实际上是个疏忽,伯特没有妥善处理。
当使用COM接口时,这是一个DATE
类型(它只是double
的别名,所以它仍然只是一个数字)。它将在即将发布的版本中得到修复。
https://stackoverflow.com/questions/49779007
复制相似问题