我对R很陌生。

我想使用称为SE_CSVLinelist_clean的表提取其中名为where_case_travelled_1的变量不包含字符串"Outside Canada""Outside province/territory of residence but within Canada"的行。然后创建一个名为SE_CSVLinelist_filtered的新表。

SE_CSVLinelist_filtered <- filter(SE_CSVLinelist_clean,
where_case_travelled_1 %in% -c('Outside Canada','Outside province/territory of residence but within Canada'))

当我仅使用“c”而不是“-c”时,以上代码有效。
因此,当我真的要排除包含该国家或省份以外的行时,如何指定以上内容?

最佳答案

请注意,%in%返回TRUEFALSE的逻辑 vector 。要取消它,可以在逻辑语句前面使用!:

SE_CSVLinelist_filtered <- filter(SE_CSVLinelist_clean,
 !where_case_travelled_1 %in%
   c('Outside Canada','Outside province/territory of residence but within Canada'))

关于-c(...)的原始方法,-是一元运算符,“对数字或复数 vector (或可强制转换为它们的对象)执行算术”(来自help("-"))。由于您要处理的字符 vector 不能强制为数字或复数,因此不能使用-

关于r - 如何在dplyr过滤器中指定 “does not contain”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34444295/

10-11 08:55