簡體   English   中英

如何使用rpy2從Python傳遞日期到R

[英]How to pass a date to R from Python using rpy2

我想從R調用一個需要Date對象的函數。 我很難用Rpy2來調用這個函數。

這是一個例子:一個采用日期的R函數

d <- as.Date("2009-08-17")
format(d, "%d/%m/%Y")
[1] "17/08/2009"

現在我想從python中調用這個函數

import datetime as dt
import rpy2.robjects.packages as rpackages
base = rpackages.importr("base") 
d = dt.date(year=2009, month=8, day=17)
base.format(date, format = "%d/%m/%y")

最后一行拋出異常

NotImplementedError: Conversion 'py2ri' not defined for objects of type    '<class 'datetime.datetime'>'

任何想法如何我可以將日期從python傳遞給R中的函數期待as.Date(xxx)參數?

fyi - 我不是在尋找純python代碼來轉換日期字符串的格式。 我想知道如何通過rpy2傳遞日期

目前,您沒有運行as.Date()函數,轉換為base.as_Date() 考慮這樣做,然后格式化為字符串。 但首先使用strfttime將Python datetime對象格式化為string:

import datetime as dt
import rpy2.robjects.packages as rpackages
import rpy2.robjects as robjects

base = rpackages.importr("base") 
pyDate = dt.date(year=2009, month=8, day=17)

rDate = base.as_Date(pyDate.strftime("%Y-%m-%d"))
rStr = base.format(rDate, format = "%d/%m/%Y")

print(robjects.StrVector(rStr).r_repr())
# "17/08/2009"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM