【问题标题】:How to combine columns in a dataframe based on strings contained in the column names?如何根据列名中包含的字符串组合数据框中的列?
【发布时间】:2020-06-04 22:02:26
【问题描述】:

我有一个数据框 all_data 有 14 列,需要合并成 4 列。

到目前为止,我已经为原始列名称字符串创建了对象。

name_pattern <- c( "Geographic.area.name", "Geographic Area Name")
VoS_pattern <- c( "Total.value.of.shipment", "value of shipments")
NAICS_pattern <- c( "NAICS.code", "NAICS code")
industry_pattern <- c("Meaning.of.", "Meaning of NAICS code")

例如,我有 5 列包含在 VoS_pattern 中的字符串中,我需要将它们合并为一列。

我需要创建包含所有单独列的对象,这些列将合并到一列。当只有一个字符串分配给对象时,例如NAICS_pattern &lt;- "NAICS.code" 而不是NAICS_pattern &lt;- c( "NAICS.code", "NAICS code"),以下工作

NAICS_col_names &lt;- grep( NAICS_pattern, colnames( all_data ), value = TRUE )

不幸的是,当有多个字符串分配给对象时它不起作用,我收到的警告是:

在 grep(NAICS_pattern, colnames(all_data), value = TRUE) 中:参数 'pattern' 的长度 > 1 并且只使用第一个元素

有什么解决办法吗?

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    我们可以将paste| 合并为一个@

    grep(paste(NAICS_pattern, collapse="|"), colnames( all_data ), value = TRUE )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-17
      • 2019-12-29
      • 2021-05-03
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      相关资源
      最近更新 更多