从数据框中提取单独的列

sil*_*ter 2 r multiple-columns dataframe dplyr

我试图提取列标题的名字,例如pack_10pack_18pack_20,并将它们全部用 sum 分组。下面你可以看到我的数据

df<-data.frame(  
              packs_10_value5=c(100,0,0,0,0),
              packs_18_value9=c(200,0,0,0,0),
              packs_20_value13=c(300,0,0,0,0),
              packs_10_value15=c(100,0,0,0,0),
              packs_18_value17=c(200,0,0,0,0),
              packs_20_value18=c(300,0,0,0,0)
              )

df
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

那么有人可以帮我解决这个问题吗?

Maë*_*aël 7

您可以split按列并按rowSums组应用:

\n
library(purrr)\nsplit.default(df, f = gsub("_value.*", "", names(df))) %>% \n  map_dfc(rowSums)\n\n# A tibble: 5 \xc3\x97 3\n  packs_10 packs_18 packs_20\n     <dbl>    <dbl>    <dbl>\n1      200      400      600\n2        0        0        0\n3        0        0        0\n4        0        0        0\n5        0        0        0\n
Run Code Online (Sandbox Code Playgroud)\n