R 使用列名作为行名,使用一列中的值作为新列名创建新数据框
我是R新手,我正在尝试从现有的数据帧创建一个新的数据帧。我希望列的一个值是新的列标题,我希望现有列标题的其余部分是行名称,并且我希望填充每个列的值。我已经搜索并尝试了很多东西,但我似乎无法找到答案 这是我的数据的一小部分…原始数据大约有25列和5000行 df1如下所示:R 使用列名作为行名,使用一列中的值作为新列名创建新数据框,r,R,我是R新手,我正在尝试从现有的数据帧创建一个新的数据帧。我希望列的一个值是新的列标题,我希望现有列标题的其余部分是行名称,并且我希望填充每个列的值。我已经搜索并尝试了很多东西,但我似乎无法找到答案 这是我的数据的一小部分…原始数据大约有25列和5000行 df1如下所示: Station month year rise set hrday 1 1 2016 334 1042 X1.134 2 3
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
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
我希望新df的列标题是“hrday”中的值,其余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
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
任何建议都将不胜感激。使用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
k%t()%%>%as_tible()%%>%
magrittr::set_colnames(c(k$hrday))%>%
变异(var=subset(colnames(k),!colnames(k)%in%c(“hrday”,“Station”)))%>%
dplyr::select(变量,X1.134:X10.753)
新德里
您是否尝试过转置函数t()
?如果是,请用您尝试过的实际代码编辑问题,并说明出了什么问题。还要添加您的数据(甚至是示例),以便人们可以使用您的代码。没问题,很乐意提供帮助。