我一直遇到这个问题,我有一个数据集,例如:
'data.frame': 5362 obs. of 5 variables:
$ productname: Factor w/ 160 levels "Accent Mugs",..:
$ othervar: something else
我想按productname
是什么来过滤:
out_ds <- data %>%
filter(isTRUE(all.equal(productname, "Woven Blankets")))
那行不通。如何测试因子标签和字符串值之间的相等性?
答案 0 :(得分:1)
您的all.equal
语句中的filter
正在将factor
productname
与string
"Woven Blankets"
进行比较,因此它不会返回{{1 }},但会返回两个参数之间差异的描述,请参见R documentation中的TRUE
。
使用all.equal
数据集,您可以在运行时看到以下内容:
iris
@AntoniosK注释中的建议应该对您的all.equal(iris$Species, "versicolor")
> "'current' is not a factor"
有用,因为data.frame
包中的filter
函数可以很容易地与dplyr
对象一起使用。
factor