.subset2(x, i, exact = exact) 中的错误:递归索引在第 2 级失败

Error in .subset2(x, i, exact = exact) : recursive indexing failed at level 2

我正在尝试将我的教育变量从 18 个级别的因子重新编码为 7 个级别的因子,范围从无资格 - GCSE D-G、GCSE A*-C- A Level -本科生 - 研究生 - 其他。

bes[[bes$education]]%>% recode('No qualification' = 'no qualification',
                               'GCSE D-G, CSE grades 2-5, O level D-E' = 'GCSE D-G',
                               'Youth training certificate, skill seekers' = 'GCSE D-G',
                               'Clerical and commercial qualifications'= 'GCSE D-G',
                               'GCSE A*-C, CSE grade 1, O level grade A-C'  = 'GCSE A*-C',
                               'Scottish Standard grades, Ordinary bands' = 'GCSE A*-C',
                               'Recognised trade apprenticeship' = 'GCSE A*-C',
                               'City&Guilds level 1, NVQ/SVQ 1 and equivalent' = 'GCSE A*-C',
                                 'A level or equivalent '= 'A level',
                               'Scottish Higher or equivalent'= 'A level',
                               'City&Guilds level 2, NVQ/SVQ 2 and equivalent'= 'A level',
                               'HNC/HND, City&Guilds level 4, NVQ/SVQ 4/5'= 'A level',
                               'ONC/OND, City&Guilds level 3, NVQ/SVQ 3'= 'A level',
                               'Univ/poly diploma'= 'Undergraduate',
                               'First degree'= 'Undergraduate',
                               'Nursing qualification'= 'Undergraduate',
                               'Teaching qualification'= 'Undergraduate',
                               'Postgraduate degree'  = 'Postgrad',
                               'Other technical, professional or higher qualification' = "Other")

我在这样做时遇到了问题,而且我不断收到错误消息。我已经尝试使用 ifelse 函数以及来自 base r 和 dplyr 以及 plyr 包的各种其他函数,但我似乎仍然无法做到。

第一个命令的语法错误。使用 bes$education 而不是 bes[[bes$education]]。方括号 [[]] 与列数一起使用,$ 符号与它们的名称一起使用。它是 [[]]$,但不能两者兼而有之。