我是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
任何建议将不胜感激。
答案 0 :(得分:1)
使用基本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