如何在 r 中转置数据帧(附示例)
在 R 中转置数据框有两种常用方法:
方法一:使用Base R
#transpose data frame
t(df)
方法2:使用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)
以下示例展示了如何在实践中使用每种方法。
方法 1:使用 Base R 转置数据帧
假设我们有以下数据框:
#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 ABC One 1 6 11 Two 2 7 12 Three 3 8 13 Oven 4 9 14 Five 5 10 15
我们可以使用R基t()函数来快速转置数据框:
#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
行和列现在颠倒了。
方法2:使用data.table转置数据框
让我们再次假设我们有以下数据框:
#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 ABC One 1 6 11 Two 2 7 12 Three 3 8 13 Oven 4 9 14 Five 5 10 15
我们可以使用data.table包的transpose()函数来快速转置数据框:
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
结果是上一个示例的转置数据帧。
注意:如果您正在处理非常大的数据框,则 data.table 方法将比基本 R 快得多。
其他资源
以下教程解释了如何在 R 中对数据框执行其他常见操作: