我正在尝试使用rpy2将一个R-数据文件加载到python中。
import rpy2.robjects as robjects
robjects.r['load']("~/example.Rdata")
这将生成一个python dataframe,它具有:
array(['times', 'all_data'], dtype='<U8')
然而,时间值被移除:
robjects.r['times']
生产:
DatetimeIndex(['2014-12-31 17:00:00+00:00', '2014-12-31 17:30:00+00:00','2014-12-31 18:00:00+00:00', '2014-12-31 18:30:00+00:00', '2014-12-31 19:00:00+00:00', '2014-12-31 19:30:00+00:00', ...dtype='datetime64[ns, UTC]']
(以下直接来自R):
"2015-01-01 00:00:00 UTC" "2015-01-01 00:30:00 UTC" "2015-01-01 01:00:00 UTC"
"2015-01-01 01:30:00 UTC" "2015-01-01 02:00:00 UTC" "2015-01-01 02:30:00 UTC"
当我在这个数据中阅读时,我如何保留原始的正确的UTC时间?尝试x = pd.to_datetime(robjects.r['times'])
也会在python中产生同样不正确的时间戳。
发布于 2020-02-01 13:19:28
做的时候
robjects.r['load']("~/example.Rdata")
文件example.Rdata
中序列化的R对象最终被加载并绑定到R的“全局环境”中的符号。这可能不会导致Python array(['times', 'all_data'], dtype='<U8')
。
Python代码
robjects.r['times']
也可以写成
robjects.globalenv['times']
它所做的是在R的全局环境中检索R符号times
并通过rpy2转换。
如果没有一个可自我复制的例子,很难确定到底发生了什么,但是如果这似乎是rpy2的一个问题,打开一个问题跟踪器。
编辑:这里打开的问题- https://github.com/rpy2/rpy2/issues/634
https://stackoverflow.com/questions/59990422
复制