![](/img/trans.png)
[英]How to make the row names and column names into factor or one of the fields in R?
[英]How to Make column names the first row in r?
我看過很多關於將第一行設為列名的教程,但沒有解釋如何反向操作。 我想將我的列名作為第一行值,並將列名更改為類似 var1、var2、var3 的名稱。 這可以做到嗎?
我打算稍后對一堆數據框進行行綁定,因此它們都需要相同的列名。
q = structure(list(shootings_per100k = c(8105.47466098618, 6925.42653239307
), lawtotal = c(3.00137104283906, 0.903522788541896), felony = c(0.787418655097614,
0.409578330883717)), row.names = c("mean", "sd"), class = "data.frame")
有:
shootings_per100k lawtotal felony
mean 8105.475 3.0013710 0.7874187
sd 6925.427 0.9035228 0.4095783
想:
var1 var2 var3
var shootings_per100k lawtotal felony
mean 8105.475 3.0013710 0.7874187
sd 6925.427 0.9035228 0.4095783
編輯:我剛剛意識到,由於我計划稍后對多個數據框進行行綁定,因此最好讓它們都具有相同的列名。 我更改了“想要”部分以反映所需的結果。
您可以使用 names() function 提取數據框的列名並將其行綁定到您的數據框。 然后再次使用 names() function 將現有名稱覆蓋為您想要的任何標准值。
q <- rbind(colnames(q), round(q, 4))
colnames(q) <- paste0("var", seq_len(ncol(q)))
rownames(q)[1] <- "var"
q
var1 var2 var3
var shootings_per100k lawtotal felony
mean 8105.4747 3.0014 0.7874
sd 6925.4265 0.9035 0.4096
您也可以按如下方式進行。
library(tidyverse)
names <- enframe(colnames(df)) %>%
pivot_wider(-name, names_from = value) %>%
rename_with( ~ LETTERS[1:length(df)])
data <- as_tibble(df) %>%
mutate(across(everything(), ~ as.character(.))) %>%
rename_with(~ LETTERS[1:length(df)])
bind_rows(names, data)
# A tibble: 3 × 3
# A B C
# <chr> <chr> <chr>
# 1 shootings_per100k lawtotal felony
# 2 8105.475 3.001371 0.7874187
# 3 6925.427 0.9035228 0.4095783
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.