# How to Transpose a Data Frame in R (With Examples)

There are two common methods you can use to transpose a data frame in R:

Method 1: Use Base R

```#transpose data frame
t(df)
```

Method 1: Use data.table

```library(data.table)

#transpose data frame
df_t <- transpose(df)

#redefine row and column names
rownames(df_t) <- colnames(df)
colnames(df_t) <- rownames(df)
```

The following examples show how to use each of these methods in practice.

### Method 1: Transpose Data Frame Using Base R

Suppose we have the following data frame:

```#create data frame
df <- data.frame(A = c(1, 2, 3, 4, 5),
B = c(6, 7, 8, 9, 10),
C = c(11, 12, 13, 14, 15))

#define row names
row.names(df) <- c('One', 'Two', 'Three', 'Four', 'Five')

#view data frame
df

A  B  C
One   1  6 11
Two   2  7 12
Three 3  8 13
Four  4  9 14
Five  5 10 15```

We can use the t() function from base R to quickly transpose the data frame:

```#transpose data frame
t(df)

One Two Three Four Five
A   1   2     3    4    5
B   6   7     8    9   10
C  11  12    13   14   15
```

The rows and the columns are now switched.

### Method 2: Transpose Data Frame Using data.table

Once again suppose we have the following data frame:

```#create data frame
df <- data.frame(A = c(1, 2, 3, 4, 5),
B = c(6, 7, 8, 9, 10),
C = c(11, 12, 13, 14, 15))

#define row names
row.names(df) <- c('One', 'Two', 'Three', 'Four', 'Five')

#view data frame
df

A  B  C
One   1  6 11
Two   2  7 12
Three 3  8 13
Four  4  9 14
Five  5 10 15```

We can use the transpose() function from the data.table package to quickly transpose the data frame:

```library(data.table)

#transpose data frame
df_t <- transpose(df)

#redefine row and column names
rownames(df_t) <- colnames(df)
colnames(df_t) <- rownames(df)

#display transposed data frame
df_t

One Two Three Four Five
A   1   2     3    4    5
B   6   7     8    9   10
C  11  12    13   14   15
```

The result matches the transposed data frame from the previous example.

Note: The data.table method will be much faster than base R if you are working with an extremely large data frame.