Logo

How to create an empty data frame in R without any rows?

If you want a data frame with a defined structure but zero rows, you can specify the column names and their corresponding data types and set nrow = 0. Here are some handy ways to do this.

Approach 1: Using data.frame()

df <- data.frame( col1 = numeric(), col2 = character(), col3 = logical(), stringsAsFactors = FALSE )

This creates a data frame named df with three columns (col1, col2, col3) and zero rows. Note that you must explicitly provide the data type for each column, such as numeric(), character(), or logical().

Approach 2: Using read.table() or read.csv()
Sometimes you want an empty data frame with column names, for example:

df <- read.table( text = "", col.names = c("col1", "col2", "col3") )

This trick uses text = "" to simulate an empty input and sets the column names with col.names. The result is a data frame with zero rows.

Pro Tips

  • Validate that the data types match your intended usage. Otherwise, when you eventually insert rows, you might get unexpected coercion.
  • Always make sure stringsAsFactors = FALSE if you don’t want strings automatically converted to factors (in older versions of R).

Learning Resources
If you’re preparing for coding interviews or want to solidify your data manipulation skills, check out these DesignGurus.io resources:

For large-scale system know-how, explore Grokking System Design Fundamentals. You can also get personalized feedback through Coding Mock Interviews with ex-FAANG engineers. Plus, the DesignGurus.io YouTube channel offers concise tutorials and insights.

CONTRIBUTOR
TechGrind