CSV Tools

Convert RDS to CSV

How to convert R data files (.rds and .RData) to CSV — free methods, in the browser or on your desktop

We don't have an in-browser converter for this format yet — the guide below covers every free route instead. For formats we convert instantly, browse all of our CSV converters.

An .rds file is a serialized R object, saved with R’s saveRDS(). Here’s the catch competitors skip: that object might be a data frame (which converts cleanly to CSV) or a model, list, or other structure that isn’t a table at all — in which case no converter can give you a meaningful CSV without you picking the tabular part out first. There’s no in-browser converter for this format here yet, so this guide covers the free routes. Fastest with no software: Posit Cloud or Google Colab below. If you already have R installed, jump to the R section.

No installation: two browser options

Option 1: Posit Cloud (RStudio in your browser)

Posit Cloud’s free tier gives you real RStudio in a browser tab — the cleanest path if you don’t have R anywhere.

  1. Sign up — Go to posit.cloud, create a free account, and click New Project.
  2. Upload your file — In the Files pane (bottom right), click Upload and select your .rds file.
  3. Run the code — Paste this into the Console and press Enter:
df <- readRDS("yourfile.rds")  # replace with your uploaded filename
write.csv(df, "output.csv", row.names = FALSE)
  1. Download the result — In the Files pane, tick output.csv, then More (gear icon) → Export.

Option 2: Google Colab with pyreadr

No R at all — Python’s pyreadr package reads .rds files that contain data frames.

  1. Open Colab — Go to colab.research.google.com, sign in with any Google account, and click New Notebook.
  2. Upload your file — Click the folder icon in the left sidebar, then the upload button, and select your .rds file.
  3. Run the code — Paste the snippet below into the cell and press the run button.
  4. Download the result — Refresh the file sidebar, right-click output.csv, and choose Download.
!pip install pyreadr
import pyreadr

result = pyreadr.read_r("yourfile.rds")  # replace with your uploaded filename
df = result[None]  # .rds files store a single unnamed object
df.to_csv("output.csv", index=False)

Know the limitation: pyreadr reads data frames, vectors, and matrices — not arbitrary R objects like lists, models, or S4 objects. If it errors, your file isn’t tabular; use the Posit Cloud path and inspect the object there. With either option, your uploaded file lives in a temporary private session — but it is on Google’s or Posit’s servers, so for confidential data use the desktop option below.

Free desktop option: R itself

No GUI stats app opens .rds, so the desktop answer is R — and that’s less scary than it sounds: R is a free download from cran.r-project.org, and the entire conversion is the same two pasted lines as above. You never need to learn R to run them.

Python

The same pyreadr route works locally:

# pip install pyreadr
import pyreadr

result = pyreadr.read_r("data.rds")
df = result[None]
df.to_csv("output.csv", index=False)

The same limitation applies: data frames yes, arbitrary R objects no.

R

df <- readRDS("data.rds")
write.csv(df, "output.csv", row.names = FALSE)

If df turns out not to be a data frame, run str(df) to see what you actually have, and extract the tabular piece before writing.

What about .RData files?

An .RData file differs from .rds: load("data.RData") restores one or more objects directly into your environment under their original names, instead of returning a single object. Run ls() after loading to see what arrived. Then write.csv(whatever_it_was, "output.csv", row.names = FALSE) exactly as above.

Which method should I use?

Your situationBest method
No software installed, one file, data not confidentialPosit Cloud or Google Colab
Confidential data that can’t leave your computerR on your desktop
Many files, or a task you’ll repeatPython or R script

FAQ

4 questions
What is the difference between .rds and .RData files?
An .rds file holds exactly one R object, saved with saveRDS() and restored with readRDS(). An .RData (or .rda) file can hold several named objects, saved with save() and restored with load(), which puts them back into your environment under their original names. Both convert to CSV the same way once you have the object: write.csv().
Can I open an .rds file without installing R?
You need an R runtime to fully read one, but that doesn't mean installing anything: Posit Cloud runs RStudio in your browser for free. If the file contains a data frame, the pyreadr Python package can also read it in Google Colab — no R involved at all.
My .rds file isn't a data frame — how do I convert it?
If the file holds a model, list, or other non-tabular object, there is no direct CSV equivalent. Open it in R (or Posit Cloud) with readRDS(), inspect it with str(), and extract the tabular part you want — for example a data frame inside a list, or a model's coefficients — then write.csv() that part.
Can Excel open .rds files?
No. .rds is R's serialized object format and nothing outside the R ecosystem opens it natively. Convert to CSV first using any method in this guide, then open the CSV in Excel.

More Format Guides & Converters

6 pages

More Convert File Formats Tools

23 tools