Создайте новый фрейм данных с именами столбцов в качестве имен строк и значениями из одного столбца в качестве имен новых столбцов - PullRequest
0 голосов
/ 08 ноября 2018

Я новичок в R и пытаюсь создать новый фрейм данных из существующего фрейма данных.Я хочу, чтобы одно из значений столбца было новым заголовком столбца, я хочу, чтобы остальные существующие заголовки столбца были именами строки, и я хочу, чтобы значения каждого из них были заполнены. Я искал и пробовал много вещей, но якажется, не могу понять.

Вот небольшое подмножество моих данных ... Исходные данные имеют около 25 столбцов и 5000 строк.

df1 выглядит так:

Station    month    year   rise   set    hrday
1            1      2016   334    1042   X1.134
2            3      2016   348    1053   X14.22
3            7      2016   242    1153   X23.233
4            2      2017   445    962    X10.753

Я хочу, чтобы новый df имел заголовки столбцов, которые являются значениями из "hrday", а остальные заголовки столбцов df1 должны быть именами строк.Это должно выглядеть так:

           X1.134    X14.22     X23.233    X10.753
year       2016      2016       2016       2017
month      1         3          7          2
rise       334       348        242        445       
set        1042      1053       1153       962

Любые предложения будут с благодарностью.

1 Ответ

0 голосов
/ 09 ноября 2018

Пример использования base t () и tidyverse + magrittr

k <- tibble(Station = 1:4,
       year = c(2016,2016,2016,2017),
       month = c(1,3,7,2),
       rise = c(334,348,242,445),
       set = c(1042,1053,1153,962),
       hrday = c("X1.134","X14.22", "X23.233","X10.753"))


new_df <- k %>% select(-Station,-hrday) %>% t() %>% as_tibble() %>%
  magrittr::set_colnames(c(k$hrday)) %>%
  mutate(var =subset(colnames(k),!colnames(k) %in% c("hrday","Station"))) %>%
  dplyr::select(var, X1.134:X10.753)

new_df
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...