pyreadr

0.5.6 · active · verified Fri Apr 17

pyreadr is a Python library designed to read and write R RData and Rds files, seamlessly converting them to and from pandas DataFrames. The current version is 0.5.6. Releases are generally infrequent, often focusing on build system improvements, dependency compatibility, or minor feature additions.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to write Python data (pandas DataFrame, NumPy array) into RData and Rds files, and then read them back. For RData, the result is a dictionary mapping R object names to Python objects. For Rds (single object), the result is directly the Python object.

import pyreadr
import pandas as pd
import numpy as np
import os

# Create a dummy RData file for testing
data_for_r = {'df': pd.DataFrame({'col1': [1, 2, 3], 'col2': ['a', 'b', 'c']}),
              'vec': np.array([10, 20, 30])}
pyreadr.write_rdata("dummy.RData", data_for_r)

# Read RData file
result_rdata = pyreadr.read_rdata("dummy.RData")
# result_rdata is a dictionary where keys are R object names
df_from_r = result_rdata['df']
vec_from_r = result_rdata['vec']

# Create a dummy Rds file for testing (single object)
df_to_rds = pd.DataFrame({'colA': [10, 20], 'colB': ['x', 'y']})
pyreadr.write_rds(df_to_rds, "dummy.rds")

# Read Rds file
result_rds = pyreadr.read_rds("dummy.rds")
# result_rds is the pandas DataFrame directly
df_from_rds = result_rds

print("DataFrame from RData:\n", df_from_r)
print("Vector from RData:\n", vec_from_r)
print("DataFrame from Rds:\n", df_from_rds)

# Clean up dummy files
os.remove("dummy.RData")
os.remove("dummy.rds")

view raw JSON →