Bir veri çerçevesindeki tüm sütunlar, dplyr borusu [duplicate] kullanılarak belirtilen bir satırdan sonra nasıl yeniden adlandırılır
Aug 19 2020
Bir veri çerçevem var df
:
df <- structure(list(V1 = c("H1", " 0.9",
"4.1", "4.0"), V2 = c("H2", " 2.174",
"4.1", "4.1"), V3 = c("H3", " 2.592",
"3.8", "4.1"), V4 = c("H4", " 2.236",
"3.8", "4.087463")), row.names = c(NA, -4L), class = "data.frame")
> df
V1 V2 V3 V4
1 H1 H2 H3 H4
2 0.9 2.174 2.592 2.236
3 4.1 4.1 3.8 3.8
4 4.0 4.1 4.1 4.0
İlk satırdan sonra sütunları yeniden adlandırmak istiyorum, ancak bir dplyr borusu kullanarak.
İstenilen sonuç şöyle görünecektir:
H1 H2 H3 H4
2 0.9 2.174 2.592 2.236
3 4.1 4.1 3.8 3.8
4 4.0 4.1 4.1 4.0
Bunu denedim ama işe yaramıyor:
df_new <- df %>%
rename_all(.,df[1,])
Birisi dplyr kullanarak bunu yapmak için düzenli bir yöntem önerebilir mi?
Yanıtlar
3 akrun Aug 19 2020 at 20:11
Biz kullanabilirsiniz row_to_names
danjanitor
library(janitor)
library(dplyr)
df %>%
row_to_names(row_number = 1) %>%
type.convert(as.is = TRUE) %>%
as_tibble
# A tibble: 3 x 4
# H1 H2 H3 H4
# <dbl> <dbl> <dbl> <dbl>
#1 0.9 2.17 2.59 2.24
#2 4.1 4.1 3.8 3.8
#3 4 4.1 4.1 4.09
2 Waldi Aug 19 2020 at 20:14
Tamamen borulanmamış ancak ekstra paket olmadan
library(dplyr)
colnames(df)<-df[1,]
df %>% tail(-1)
H1 H2 H3 H4
2 0.9 2.174 2.592 2.236
3 4.1 4.1 3.8 3.8
4 4.0 4.1 4.1 4.087463
Veya @IceCreamToucan ve @Henrik tarafından önerildiği gibi tamamen kanallı:
df %>% setNames(.[1,]) %>% tail(-1) %>% mutate(across(everything(),as.numeric))
H1 H2 H3 H4
1 0.9 2.174 2.592 2.236000
2 4.1 4.100 3.800 3.800000
3 4.0 4.100 4.100 4.087463
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı