如何在创建条件R时使用级别而不是标签

如何在创建条件R时使用级别而不是标签,r,R,我想知道如何在R中使用级别而不是标签 在此之前,我使用了以下代码 df2 <- df %>% filter(type_A == 1 | (type_B == 2 & explanation == 3)) df2% 过滤器(类型A==1(类型B==2&解释==3)) 在某一点上,我分解了变量,并为级别提供了标签。比如说 1=XXX,2=YYY,3=ZZZ 现在,当我使用上面的代码时,它不起作用。它报告0个值 我必须将其更改为: df2 <- df1 %>%

我想知道如何在R中使用级别而不是标签

在此之前,我使用了以下代码

df2 <- df %>%
  filter(type_A == 1 | (type_B == 2 & explanation == 3))
df2%
过滤器(类型A==1(类型B==2&解释==3))
在某一点上,我分解了变量,并为级别提供了标签。比如说

1=XXX,2=YYY,3=ZZZ

现在,当我使用上面的代码时,它不起作用。它报告0个值

我必须将其更改为:

df2 <- df1 %>%
  filter(type_A == "XXX" | (type_B == "YYY" & explanation == "ZZZ"))
df2%
过滤器(类型A==“XXX”;(类型B==“YYY”&解释==“ZZZ”))
然而,这将需要更多的输入,我将需要更改已经编写的代码的全部内容


我如何解决这个问题?

as.numeric
将因子转换为其级别。您可以使用
过滤器(as.numeric(type_A)==1 |)(as.numeric(type_B)==2…)
…这也很糟糕。我认为您应该选择一个范例并坚持使用它。在这两种情况下工作都会很困难。(或者保留列的整数版本和标记版本,并使用适当的版本)谢谢你,很遗憾R不能自动识别正确的输入。
as.numeric
将因子转换为它的级别。你可以使用
filter(as.numeric(type_a)==1 |(as.numeric(type_B)==2…
)。这也很糟糕。我认为你应该选择一种模式并坚持下去。在这两种模式下工作都会很困难。(或者保留列的整数版本和带标签的版本,并使用适当的版本)谢谢,很遗憾R无法自动识别正确的输入