首页 > 解决方案 > 在R中的数据框中旋转行和列

问题描述

我想在 R 中旋转一个 data.frame。我的数据框如下所示:

d <- data.frame( A = c("Att1","Att2"), b = c(12,10), c =c(8,9), d =c (1,2))

最后我的数据框应该如下所示:

d2 <- data.frame( name = c("B","C","D"), Att1 = c(10,8,1), Attr2 = c(10,9,2))

我已经尝试使用 t() 方法,但总是出现这个错误:Column dmust be a 1d atomic vector or a list

如何对数据框执行旋转操作?谢谢你的帮助!问候

标签: r

解决方案


您需要先转置它,然后按照以下步骤操作

library(tibble)

df <- data.frame(t(d), stringsAsFactors = F)
colnames(df) <- df[1, ]                #assign 1st row to column name
df <- df[-1, ]
df <- rownames_to_column(df, "name")  #assign row name to a new column

> df
  name Att1 Att2
1    b   12   10
2    c    8    9
3    d    1    2

样本数据:

d <- structure(list(A = structure(1:2, .Label = c("Att1", "Att2"), class = "factor"), 
    b = c(12, 10), c = c(8, 9), d = c(1, 2)), class = "data.frame", row.names = c(NA, 
-2L))

推荐阅读