【发布时间】:2023-03-30 23:01:01
【问题描述】:
我正在使用dplyr::filter() 函数来过滤我的数据。我有一个名为produktslag_id 的列,format(class) 是character
我的代码如下试图过滤掉02 AND 08,但它不起作用。
db_sales %>%
filter(produktslag_id!="02" & produktslag_id!="08") %>%
group_by(produktslag_id) %>%
count()
我还是明白了:
produktslag_id n
<chr> <int>
01 1330742
02 139095
03 636292
04 1116240
05 280963
06 565081
07 231681
08 55696
有什么建议吗?
我试过了
db_sales %>%
mutate(produktslag_id=as.numeric(produktslag_id)) %>%
filter(produktslag_id!=02 & produktslag_id!=08)
它可以工作
但只是想知道为什么我的原始代码不起作用以及 02 和 08 的字符串可能是什么?
【问题讨论】:
-
您显示的代码应该可以工作,如果这就是代码的实际情况。我的第一个想法是检查隐藏或不可见的字符。
-
您的号码周围可能有额外的空白?你可以试试在他们周围使用
trimws() -
也许是间距?
produktslag_id !="02"或produktslag_id != "02"而不是produktslag_id!="02"