首页 > 解决方案 > 如何在 R 中重新排列数据框

问题描述

我有一个简单的问题,但对 R 很陌生,我似乎无法弄清楚。我有以下结构的数据框:

         V1    V2   V3   V4
STATE    0     0    1    1
Period   1     2    1    2
avg_FTE  40    35   42   35 

我想将其重新排列为以下内容:

STATE      0     1 
Period 1   40    42
Period 2   35    35

我希望答案很简单,但由于某种原因,这让我很困惑。

提前谢谢了!

标签: rdataframe

解决方案


library(reshape)
Input = (
  'V1    V2   V3   V4
STATE    0     0    1    1
Period   1     2    1    2
avg_FTE  40    35   42   35 ')
df = read.table(textConnection(Input), header = T)
df <- as.data.frame(t(df))
t(dcast(df, STATE~Period, fill=0))
      [,1] [,2]
STATE    0    1
1       40   42
2       35   35

我们可以稍微修正一下输出:

colnames(res) <- res[1,]
res <- res[-1,]

   0  1
1 40 42
2 35 35

推荐阅读