首页 > 解决方案 > 基于变量值(水平)的子集调查数据?

问题描述

我试图通过使用调查参与者的职业作为样本来分析 PIAAC(成人能力国际评估计划)数据。.csv 文件包含两张表:一张包含变量,另一张包含变量可以采用的值。可以通过以下方式访问不同国家/地区的各个文件:https ://webfs.oecd.org/piaac/puf-data/CSV/或直接通过以下方式访问整个数据集:

library("devtools")
install_github("pbiecek/PISA2012lite") #Needed to access the PIAAC data

data("piaac", package = "PIAAC")

当我在 R 中读取数据时,变量“ISCO08_C”表示参与者的当前职业,在 R 中的 data.frame 中,它只取值 9996、9997、9998、9999,对应于“有效跳过”、“不知道”、“拒绝”和“未说明或推断”(这些可以在 OECD PIAAC 网站提供的代码簿中找到:https ://www.oecd.org/skills/piaac/数据/)。在值表的 .csv 文件中,还有每个职业的代码,我的目标是获得与特定 ISCO08 分类代码相关联的参与者的子集。在我的情况下,代码是“233”。这是前 20 个条目的样子:

head(aut$ISCO08_C, 20)
 [1] 9996         9996         9996         9999         9996         9999         9999         9996         9999         9999        
[11] 9999         9999         9999         9999         9999         9999         9999         9996         9999         9999        
605 Levels:              9996         9999         0110         0210         0310         1111         1113         1114         ... 33

我看到有 605 个级别,也许我的问题的解决方案就在那里,但我不知道如何进行。我试过做:

aut = subset(piaac, CNTRYID == "Austria")

teachers = aut[aut$ISCO08_C %in% "233"]

但考虑到变量取值从 9996 到 9999,除了给我 0 个可以理解的变量之外,它并没有多大作用。下面我提供了感兴趣的变量的结构和 ASCII 表示。

> str(piaac$ISCO08_C)
 Factor w/ 605 levels "            ",..: 2 2 2 3 2 3 3 2 3 3 ...
> dput(head(piaac$ISCO08_C))
structure(c(2L, 2L, 2L, 3L, 2L, 3L), .Label = c("            ", 
"9996        ", "9999        ", "0110        ", "0210        ", 
"0310        ", "1111        ", "1113        ", "1114        ", 
"1120        ", "1211        ", "1212        ", "1213        ", 
"1219        ", "1221        ", "1222        ", "1223        ", 
"1321        ", "1323        ", "1324        ", "1330        ", 
"1342        ", "1343        ", "1344        ", "1345        ", 
"1346        ", "1349        ", "1411        ", "1412        ", 
"1420        ", "1431        ", "1439        ", "2113        ", 
"2120        ", "2131        ", "2133        ", "2141        ", 
"2144        ", "2145        ", "2149        ", "2151        ", 
"2152        ", "2153        ", "2161        ", "2162        ", 
"2163        ", "2165        ", "2166        ", "2211        ", 
"2212        ", "2221        ", "2222        ", "2230        ", 
"2240        ", "2250        ", "2261        ", "2262        ", 
"2263        ", "2264        ", "2265        ", "2266        ", 
"2267        ", "2269        ", "2310        ", "2320        ", 
"2330        ", "2341        ", "2342        ", "2351        ", 
"2352        ", "2354        ", "2355        ", "2356        ", 
"2359        ", "2411        ", "2412        ", "2413        ", 
"2421        ", "2422        ", "2423        ", "2424        ", 
"2431        ", "2432        ", "2433        ", "2511        ", 
"2512        ", "2513        ", "2514        ", "2519        ", 
"2521        ", "2522        ", "2611        ", "2612        ", 
"2619        ", "2621        ", "2622        ", "2632        ", 
"2634        ", "2635        ", "2636        ", "2641        ", 
"2642        ", "2643        ", "2651        ", "2652        ", 
"2654        ", "2655        ", "2659        ", "3111        ", 
"3112        ", "3113        ", "3114        ", "3115        ", 
"3116        ", "3118        ", "3119        ", "3121        ", 
"3122        ", "3123        ", "3133        ", "3135        ", 
"3139        ", "3141        ", "3152        ", "3153        ", 
"3154        ", "3211        ", "3212        ", "3213        ", 
"3221        ", "3240        ", "3251        ", "3252        ", 
"3253        ", "3254        ", "3256        ", "3257        ", 
"3258        ", "3259        ", "3311        ", "3312        ", 
"3313        ", "3314        ", "3315        ", "3321        ", 
"3322        ", "3323        ", "3331        ", "3332        ", 
"3333        ", "3334        ", "3339        ", "3341        ", 
"3342        ", "3343        ", "3344        ", "3351        ", 
"3352        ", "3353        ", "3354        ", "3355        ", 
"3359        ", "3411        ", "3412        ", "3413        ", 
"3422        ", "3423        ", "3431        ", "3432        ", 
"3434        ", "3435        ", "3511        ", "3512        ", 
"3513        ", "3514        ", "4110        ", "4120        ", 
"4132        ", "4211        ", "4221        ", "4222        ", 
"4223        ", "4224        ", "4225        ", "4226        ", 
"4229        ", "4311        ", "4312        ", "4313        ", 
"4321        ", "4322        ", "4323        ", "4411        ", 
"4412        ", "4413        ", "4416        ", "4419        ", 
"5111        ", "5112        ", "5113        ", "5120        ", 
"5131        ", "5132        ", "5141        ", "5142        ", 
"5151        ", "5152        ", "5153        ", "5163        ", 
"5164        ", "5165        ", "5211        ", "5212        ", 
"5221        ", "5222        ", "5223        ", "5230        ", 
"5242        ", "5244        ", "5246        ", "5249        ", 
"5311        ", "5312        ", "5321        ", "5322        ", 
"5329        ", "5411        ", "5412        ", "5413        ", 
"5414        ", "5419        ", "6111        ", "6112        ", 
"6113        ", "6121        ", "6130        ", "7111        ", 
"7112        ", "7114        ", "7115        ", "7119        ", 
"7121        ", "7122        ", "7123        ", "7124        ", 
"7125        ", "7126        ", "7127        ", "7131        ", 
"7132        ", "7133        ", "7211        ", "7212        ", 
"7214        ", "7215        ", "7221        ", "7222        ", 
"7223        ", "7231        ", "7232        ", "7233        ", 
"7234        ", "7313        ", "7315        ", "7316        ", 
"7318        ", "7319        ", "7321        ", "7322        ", 
"7411        ", "7412        ", "7413        ", "7421        ", 
"7422        ", "7511        ", "7512        ", "7514        ", 
"7521        ", "7522        ", "7532        ", "7533        ", 
"7534        ", "7543        ", "8114        ", "8121        ", 
"8122        ", "8131        ", "8132        ", "8142        ", 
"8143        ", "8152        ", "8153        ", "8157        ", 
"8159        ", "8160        ", "8171        ", "8172        ", 
"8181        ", "8183        ", "8189        ", "8211        ", 
"8212        ", "8219        ", "8311        ", "8312        ", 
"8322        ", "8331        ", "8332        ", "8341        ", 
"8342        ", "8343        ", "8344        ", "9111        ", 
"9112        ", "9121        ", "9123        ", "9129        ", 
"9211        ", "9212        ", "9213        ", "9214        ", 
"9312        ", "9313        ", "9321        ", "9329        ", 
"9331        ", "9333        ", "9334        ", "9412        ", 
"9510        ", "9520        ", "9611        ", "9612        ", 
"9622        ", "9623        ", "9629        ", "9997        ", 
"1311        ", "1312        ", "1322        ", "1341        ", 
"21          ", "2111        ", "2132        ", "2142        ", 
"2146        ", "2164        ", "226         ", "23          ", 
"2353        ", "2434        ", "2631        ", "2656        ", 
"31          ", "3117        ", "3131        ", "3132        ", 
"3142        ", "3143        ", "3151        ", "3214        ", 
"3230        ", "3255        ", "3421        ", "3433        ", 
"35          ", "3521        ", "3522        ", "4131        ", 
"4212        ", "4213        ", "4227        ", "4415        ", 
"5169        ", "5245        ", "6123        ", "6129        ", 
"6210        ", "7213        ", "7224        ", "723         ", 
"7311        ", "7314        ", "7515        ", "7523        ", 
"7531        ", "7536        ", "7544        ", "7549        ", 
"81          ", "8111        ", "8141        ", "8151        ", 
"8155        ", "8182        ", "8350        ", "9122        ", 
"9215        ", "9311        ", "9411        ", "9613        ", 
"9621        ", "9998        ", "011         ", "021         ", 
"031         ", "1112        ", "112         ", "122         ", 
"132         ", "133         ", "142         ", "210         ", 
"211         ", "2114        ", "212         ", "214         ", 
"2143        ", "221         ", "223         ", "224         ", 
"225         ", "231         ", "232         ", "233         ", 
"234         ", "2343        ", "235         ", "2357        ", 
"241         ", "242         ", "243         ", "2443        ", 
"25          ", "251         ", "2523        ", "2529        ", 
"264         ", "2653        ", "311         ", "313         ", 
"3134        ", "314         ", "321         ", "324         ", 
"325         ", "332         ", "3324        ", "333         ", 
"334         ", "341         ", "343         ", "351         ", 
"352         ", "4           ", "41          ", "411         ", 
"412         ", "422         ", "431         ", "441         ", 
"51          ", "511         ", "512         ", "52          ", 
"522         ", "523         ", "5232        ", "53          ", 
"531         ", "532         ", "541         ", "6114        ", 
"6122        ", "613         ", "621         ", "6222        ", 
"6223        ", "631         ", "6320        ", "713         ", 
"722         ", "731         ", "7317        ", "7323        ", 
"74          ", "741         ", "75          ", "751         ", 
"7513        ", "8113        ", "813         ", "816         ", 
"82          ", "831         ", "832         ", "833         ", 
"834         ", "835         ", "91          ", "911         ", 
"921         ", "9216        ", "93          ", "951         ", 
"952         ", "961         ", "962         ", " 210        ", 
" 211        ", " 212        ", " 310        ", "2633        ", 
"3155        ", "4214        ", "4712        ", "6221        ", 
"6224        ", "6310        ", "6340        ", "7113        ", 
"7312        ", "7541        ", "7542        ", "8156        ", 
"8321        ", "3222        ", "5162        ", "7535        ", 
"121         ", "131         ", "141         ", "215         ", 
"261         ", "263         ", "331         ", "342         ", 
"421         ", "513         ", "514         ", "5243        ", 
"622         ", "753         ", "8112        ", "812         ", 
"815         ", "817         ", "912         ", "932         ", 
"933         ", "0           ", "2           ", "3           ", 
"5241        ", "611         ", "612         ", "7           ", 
"71          ", "711         ", "712         ", "72          ", 
"752         ", "8           ", "811         ", "814         ", 
"8154        ", "821         ", "83          ", "9           ", 
"931         ", "134         ", "42          ", "432         ", 
"4414        ", "61          ", "732         ", "742         ", 
"941         ", "5161        ", "6330        ", "111         ", 
"143         ", "213         ", "216         ", "222         ", 
"252         ", "262         ", "265         ", "312         ", 
"315         ", "322         ", "323         ", "335         ", 
"515         ", "516         ", "524         ", "721         ", 
"754         ", "818         ", "12          ", "632         ", 
"633         ", "2112        ", "24          ", "33          "
), class = "factor")

我希望这些信息足以理解问题。任何帮助将不胜感激。先感谢您。

标签: rsurvey

解决方案


我认为这里的答案很简单。piacc数据具有ISO08_C类型为的列factor。它包含您可以在dput. 但是,在奥地利的子集中,只有数字 9996 和 9999 存在。

当您使用因子列对数据框进行子集化时,即使子集中不存在某些因子水平,也会保留所有因子水平。

例如:

df_with_factors <- data.frame(group = as.factor(rep(LETTERS[1:5], each = 2)))
subsetted_df    <- subset(df_with_factors, group != "A")

subsetted_df
#>    group
#> 3      B
#> 4      B
#> 5      C
#> 6      C
#> 7      D
#> 8      D
#> 9      E
#> 10     E

您可以看到 中没有“A”条目subsetted_df$group。然而,如果我检查因子水平:

levels(subsetted_df$group)
#> [1] "A" "B" "C" "D" "E"

您可以看到“A”仍然作为一个因子水平存在,即使它没有在这个子集中使用。

如果您使用提供的链接仅将奥地利数据下载为 csv,则可以确认您的数据就是这种情况。

df <- read.csv("https://webfs.oecd.org/piaac/puf-data/CSV/prgautp1.csv")

现在,如果我将来自奥地利数据的不同值制成表格ISO08_C,我可以看到:

table(df$ISCO08_C)

#> 9996 9999 
#> 1392 3692

因此,对您的问题的简短回答是奥地利数据集中没有回答这个特定问题,因此您正在尝试分析您拥有的数据集中不存在的数据。


推荐阅读