Как переставить датафрейм в R - PullRequest
1 голос
/ 01 апреля 2020

У меня есть простая проблема, но, будучи очень новым для 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

Я ожидаю, что ответ довольно прост, но по некоторым причинам это имеет споткнулся меня.

Большое спасибо заранее!

Ответы [ 2 ]

1 голос
/ 01 апреля 2020
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
0 голосов
/ 01 апреля 2020

дополнительный раствор

library(tidiverse)
df %>% 
  t() %>% 
  as.data.frame() %>% 
  pivot_wider(id_cols = Period, names_from = STATE, values_from = avg_FTE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...