首页 > 解决方案 > 变异函数中的 GREP

问题描述

我正在尝试使用 GREP 对数据集进行重新分类。我想添加一个新列并根据另一个列中是否存在字符串来填充它:

wi.listings.Recode<-mutate(wi.listings, Check=ifelse(wi.listings$ListingDescription == grepl('Veranda', wi.listings$ListingDescription, ignore.case=TRUE), 'Veranda','Non Veranda'))

它返回所有“非阳台”,因此 ifelse 函数中的某些内容无法正常工作。

标签: r

解决方案


grepl返回一个逻辑,然后将其与字符串 ( ListingDescription) 进行比较;这种比较总是会返回FALSE。只需使用 grepl 的结果:

wi.listings.Recode <- mutate(wi.listings, HasVeranda = ifelse(grepl("Veranda", ListingDescription, ignore.case = TRUE), "Veranda", "Non Veranda"))

此外,您可能有兴趣了解dplyr 使用的非标准评估,这样您就不必从正在变异的 data.frame 中显式引用列名。


推荐阅读