r - 将列名转换为 R 中数据框的第一行
问题描述
我想更改现有数据框的列名而不删除它。
我需要的那些列名作为我的数据框的第一行。
eg.
Existing dataframe
df = data.frame(x = c("P1","P2","P3","P4","P5"),
y = c("DC","DC","DC","DC","DC"),
f_1 = c("NA","1","NA","NA","NA"),
f_2= c("NA","1","NA","NA","NA"),
f_3= c("1","7","NA","NA","NA"),
f_4= c("NA","NA","5","NA","NA"),
f_5= c("NA","NA","2","NA","NA"),
stringsAsFactors = FALSE)
I want to change those col names with another data frame column names.
df1 = data.frame(A = c("P1"),
B = c("p2"),
C = c("p3"),
D= c("p4"),
E= c("p8"),
F= c("p9"),
G= c("p8"),
stringsAsFactors = FALSE)
所需输出:
Df
A B C D E F G
1 x y f_1 f_2 f_3 f_4 f_5
2 P1 DC NA NA 1 NA NA
3 P2 DC 1 1 7 NA NA
4 P3 DC NA NA NA 5 2
5 P4 DC NA NA NA NA NA
6 P5 DC NA NA NA NA NA
我试过但不正确。
df1<-as.data.frame(t(as.character(unlist(colnames(df1)))))
colnames(df1) <- df[1,]
有人知道正确的方法吗??
解决方案
中base R
,只是rbind
第一个数据的列名,然后设置列名
setNames(rbind(names(df), df), names(df1))
# A B C D E F G
#1 x y f_1 f_2 f_3 f_4 f_5
#2 P1 DC NA NA 1 NA NA
#3 P2 DC 1 1 7 NA NA
#4 P3 DC NA NA NA 5 2
#5 P4 DC NA NA NA NA NA
#6 P5 DC NA NA NA NA NA
推荐阅读
- javascript - 页面刷新时如何保持状态?
- regex - 正则表达式与 grep
- python - 如何使用python在html文件中连续插入文本和图像?
- mysql - 从 SQL 中删除零
- php - 使用 SQL 保护 php GET
- php - PHP CURL 库给出类型为“invalid_access_error”的错误“超出速率限制”
- .htaccess - 为什么没有任何 .htaccess 规则的 url 可以有 301 个重定向循环
- travis-ci - 如何获取 Travis-CI 构建期间生成的文件?
- minecraft - 如何让自定义项目纹理与 Lore 一起使用?
- php - Wordpress 失去与 chrome 的会话