比较R中的因子和字符串

时间:2018-09-21 15:34:04

标签: r

我一直遇到这个问题,我有一个数据集,例如:

'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")))

那行不通。如何测试因子标签和字符串值之间的相等性?

1 个答案:

答案 0 :(得分:1)

您的all.equal语句中的filter正在将factor productnamestring "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