1
我處理很多時間序列刻度數據,並試圖使用rpy2將這些數據從Python獲取到R.具體來說,我想將包含毫秒時間戳(關鍵)和時區信息的時間序列很高興有)。rpy2是否支持帶時區的毫秒時間戳和時間戳?
爲了測試傳輸時間戳,我想:
from pytz import timezone
from datetime import datetime
import rpy2.robjects as robjects
# 1 microsecond into 2015 in US Eastern time
time = datetime(2015,1,1,0,0,0,1, tzinfo = timezone('US/Eastern'))
robjects.r.assign('time', time)
但是這給了:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Python\2.7\lib\site-packages\rpy2\robjects\functions.py", line 170, in __call__
return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "C:\Python\2.7\lib\site-packages\rpy2\robjects\functions.py", line 96, in __call__
new_args = [conversion.py2ri(a) for a in args]
File "C:\Python\2.7\lib\site-packages\singledispatch.py", line 210, in wrapper
return dispatch(args[0].__class__)(*args, **kw)
File "C:\Python\2.7\lib\site-packages\rpy2\robjects\conversion.py", line 39, in py2ri
raise NotImplementedError("Conversion 'py2ri' not defined for objects of type '%s'" % str(type(obj)))
NotImplementedError: Conversion 'py2ri' not defined for objects of type '<type 'datetime.datetime'>'
好像rpy2不支持datetime
對象......所以,我怎麼能轉移時間串聯成R'
不幸的是,毫秒當Python'datetime'被轉換爲R的'POSIXct'時,被rpy2所丟棄。具體來說,'robjects.POSIXct([datetime(2015,1,1,0,0,0,0)])。r_repr()== robjects.POSIXct([datetime(2015,1,1,0,0,0 ,1)])。r_repr()'是'True' – mchen
這會有幫助嗎?http://stackoverflow.com/questions/2150138/how-to-parse-milliseconds-in-r – lgautier