Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使用XLConnect从Excel 2010中检索以毫秒为单位的日期时间_R_Excel_Xlconnect - Fatal编程技术网

R 如何使用XLConnect从Excel 2010中检索以毫秒为单位的日期时间

R 如何使用XLConnect从Excel 2010中检索以毫秒为单位的日期时间,r,excel,xlconnect,R,Excel,Xlconnect,你好,我收到了一份XL电子表格(…不是我的错,请继续阅读…) 您可能知道,XL不能很好地处理日期时间和毫秒。对于要在单元格中显示的毫秒,您必须选择一种特殊格式aaaa mm jj hh:mm:ss.000 我需要用XLConnect将此XL表加载到R中(我无法使用其他软件包) 如你所见: 单元格B2的公式中的内容是2012-10-01 12:15:15 由于我的格式,B2单元格中显示的内容是2012-10-01 12:15:15.447 仅供参考,我在B3 我的问题是我所做的 wb = l

你好,我收到了一份XL电子表格(…不是我的错,请继续阅读…)

您可能知道,XL不能很好地处理日期时间和毫秒。对于要在单元格中显示的毫秒,您必须选择一种特殊格式
aaaa mm jj hh:mm:ss.000

我需要用
XLConnect
将此XL表加载到
R
中(我无法使用其他软件包)

如你所见:

  • 单元格B2的公式中的内容是
    2012-10-01 12:15:15
  • 由于我的格式,
    B2
    单元格中显示的内容是
    2012-10-01 12:15:15.447
  • 仅供参考,我在
    B3
我的问题是我所做的

wb = loadWorkbook(currentFile)
dataFile <- readWorksheet(wb, sheet=c('Sheet1'),header=TRUE);
#or even when I specify the type (my real file is a 3 columns matrix)
dataFile <- readWorksheet(wb, sheet=c('Sheet1'),header=TRUE, 
                              colTypes = c(XLC$DATA_TYPE.NUMERIC,XLC$DATA_TYPE.DATETIME,XLC$DATA_TYPE.NUMERIC), 
                              dateTimeFormat='%Y-%m-%d %H:%M:%OS');
wb=loadWorkbook(当前文件)

数据文件我已经在我们的github存储库中记录并修复了这个问题。现在应该是毫秒了。只需确保在打印之前也设置了
选项(digits.secs=3)
,否则将不会显示毫秒。

我确实在帮助文件
?readWorksheet
“执行日期/时间转换时使用的dateTimeFormat日期/时间格式中看到了这一点。默认为getOption(“XLConnect.dateTimeFormat”)。根据strptime,这应该是POSIX格式说明符,尽管尚未实现所有规范-但最重要的规范都可用。“因此,在下一次升级之前,您可能一直处于SOL状态。”。更多的调查是必要的:-)因为我显然没有别的事可做:-),这里有一个可能的解决办法。如果可以修改Excel源代码,请添加一列,公式为
=A1 floor(A1,1)
,以提取等于秒数的数字部分。。。或者见鬼,只要将日期重新格式化为数字值,并在
R
内转换回来即可。嘿,伙计,是的,我可以做很多技巧,pb就是在现实生活中我有100个这样的文件,我成功地从R内正确格式化了文件,信不信由你,SAS可以正确导入这些文件。。。。(羞耻)所以我会在SAS中加载那些新格式化的文件并导出回csv,或者如果我感到孤独,我会编写一些VBA来复制粘贴特殊值到正确格式的字符串。。。对于一些简单的东西,我做了很多工作,但我仍然希望这个软件包看起来不错…是的,或者编写一个宏将所有工作表保存为
csv
,使用
read.csv
和一些魔术将日期时间字符串转换为实际的DatesHanks mate进行快速修复++