首页 > 解决方案 > 如何处理 R 中的长列名?

问题描述

我有一个由许多非常具体的变量组成的大型数据集。我正在寻找一种使用快速方法而不是手动更改超过 1000 列的方法来简化列名。


total.population.2020 <- c("1","2" )
total.population.2020.both.sexes <- c("3", "4")
total.population.2020.sexes.males.14.to.16.years <- c("7", "9")
total.income.2020 <- c("55", "40")
total.income.2020.25.to.30.years <- c("80", "90")
            
df <- data.frame(total.population.2020, total.population.2020.both.sexes, total.population.2020.sexes.males.14.to.16.years, total.income.2020, total.income.2020.25.to.30.years)

我首先从 Janitor 运行 clean_names 函数,因为在原始 df 上使用 gsub/abbreviate 会清除整个列名,使其为空而不是简化它。


library(janitor)
df <- clean_names(df)

然后我会运行 gsub/abbreviate。但是,我遇到的问题是缩写仍然很长(10 个字符以上)并且缺少我认为是重要标识符的数字(例如 20 到 25 岁)。这需要我仍然手动更改列名。

names(df) <- abbreviate(gsub("_", " ", names(df)))
df

有没有更简单的方法?您将如何处理具有长列名的大型数据集?

预期输出:

老的 新的
total.population.2020 tp
total.population.2020.both.sexes tpb
total.population.2020.sexes.males.14.to.16.years tpm14_16
total.income.2020
total.income.2020.25.to.30.years ti25_30

标签: rdataframemultiple-columnsnames

解决方案


推荐阅读