When trying to convert a Pandas data-frame column to a R ts object I obtain a R object of type "array" instead of type "ts" if the column values contain float numbers. What should be the correct way to convert the Pandas column to R ts object?
import pandas as pd
path_to_Rdll = "_path_goes_here"
import os
os.environ['R_HOME'] = path_to_Rdll
import rpy2
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()
print(rpy2.__version__)
r_ts_function = robjects.r('ts')
pandas_dataFrame = pd.DataFrame({'value': [3, 2, 1]})
rdata_1 = r_ts_function(pandas_dataFrame.value.values)
print("class(rdata_1):")
print(robjects.r('class')(rdata_1))
This works as expected, returning:
class(rdata_1):
['ts']
But when the column values contain floats for example
pandas_dataFrame = pd.DataFrame({'value': [3.1, 2, 1]})
rdata_2 = r_ts_function(pandas_dataFrame.value.values)
print("class(rdata_2):")
print(robjects.r('class')(rdata_2))
I get:
class(rdata_2):
['array']
Try converting the values of
pandas_dataFrameinto a pythonlist.