将字符串转换为具有水平的因子,但在引入 NA 时发出警告

Convert strings to factors with levels, but warn when introducing NAs

提问人:Nick 提问时间:8/28/2023 更新时间:8/28/2023 访问量:32

问:

我正在准备一个用于分析的旧数据集,并且需要使用水平将字符串转换为因子。我使用了一个(同样古老的)数据字典来设置级别,但刚刚注意到它并不完全正确——某些变量中的某些字符串不在数据字典中。

我想防止字符串在没有警告的情况下被删除(转换为 NA)——理想情况下,如果字符串不在级别定义中,我希望事情完全停止。这可能吗?

df <- data.frame(c1 = letters[1:3])
factor(df$c1, levels = letters[1:2])
# [1] a    b    <NA>

乐于使用,或其他东西。dplyrforcats

R 因子

评论

2赞 neilfws 8/28/2023
“我希望事情完全停止”——听起来好像你想要的是一个函数,用于检查一个向量中的所有字符变量是否都在第二个字符变量向量(级别)中找到 - 如果是这样,则转换为因子,如果没有,则不要并报告哪些缺失?
3赞 Parfait 8/28/2023
请参阅以比较两个向量。?setdiff
0赞 Nick 9/18/2023
您可能是对的,需要单独的功能/检查。

答: 暂无答案