【发布时间】:2018-11-09 16:07:46
【问题描述】:
我尝试用数据的第一行重命名列名。
use first row data as column names in r
use %>% with replacement functions like colnames()<-
我反驳的问题是,在不破坏dplyr pipeline 的情况下执行此过程,因为我想在重命名列后继续做一些其他事情。
这篇文章中有关于rename函数的评论
dplyr::rename 如果您只是(重新)命名许多列中的几个(它需要同时编写旧名称和新名称;请参阅@Richard Scriven 的回答),则 dplyr::rename 可能会更方便
但是,在我的真实数据中,列数不是固定的,所以我需要使用类似选择列select(X9:max(ncol(.)))
df <- data.frame(replicate(10,sample(100,2,rep=TRUE)))
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 77 40 45 98 75 17 5 33 53 94
2 43 67 82 42 63 90 14 65 4 98
library(dplyr)
df1 <- df %>%
select(X8,X9,X10)%>%
....
选择和重命名列后的预期输出
33 53 94
1 65 4 98
【问题讨论】:
-
df %>% setNames(as.character(df[1,])) -
所以澄清一下,您只想保留一些列
(X9:end),并从第一行获取名称? -
@Ryan 完美。是否可以删除 setNames 之后的第一行?因为输出权知道仍然保持第一行。
-
@CalumYou 没错!
-
@Ryan 还有一件事如何在
selectdf1 <- df %>% select(X8,X9,X10)%>% setNames(as.character(.[1,X9:max(ncol(.))]))之后仅重命名选定的列