首页 > 解决方案 > 使用标准函数或 dbplyr 对 R 中的特定行进行子集/过滤?

问题描述

我正在尝试对 BLS 中的数据进行子集化,以将具有 NAIC 代码的行区分为不同的类别。它们目前都在一列中,# 长度范围为 2-6。理想情况下,我希望我的数据框包含 4 个新的二进制列 (0, 1),以便我可以将数据框保留为所有原始值,并分别调用新的 NAIC 代码列。

数据:

naic_codes year             area_title          own_title                                             industry_title annual_avg_emplvl
1           10 2017 Kansas City, MO-KS MSA      Total Covered                                   101 Total, all industries           1031619
2           10 2017 Kansas City, MO-KS MSA Federal Government                                   10111 Total, all industries             26982

我尝试了几种方法来进行子集化,以便我可以将代码过滤到它们各自的长度条目。我尝试过的变体包括过滤、选择、子集、将值更改为因子/字符/数字/整数。

df3 %>% filter_at(vars(starts_with("naic_codes")), any_vars(.<= 99))

new <- df2[nchar(df2$naics_code) ==2]

我要么得到错误消息或未使用的 R 参数、具有 NULL 值的新向量,要么得到具有相同值但没有任何过滤的新向量。

标签: dataframedplyrrstudiorowsubset

解决方案


一种简单的方法是将列转换为因子并使用 1 热编码


推荐阅读