[英]Convert Column names into first row of Data frame in R
我想更改現有 dataframe 的列名而不刪除它。
我需要的那些列名稱作為我的 dataframe 的第一行。
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)
必填 Output:
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
您可以先將df
的第一行rbind
放在df
之上,然后用df1
的names
覆蓋df
的names
:
df <- rbind(names(df), df)
names(df) <- names(df1)
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.