[英]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.