r - 变异函数中的 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 函数中的某些内容无法正常工作。
解决方案
grepl
返回一个逻辑,然后将其与字符串 ( ListingDescription
) 进行比较;这种比较总是会返回FALSE
。只需使用 grepl 的结果:
wi.listings.Recode <- mutate(wi.listings, HasVeranda = ifelse(grepl("Veranda", ListingDescription, ignore.case = TRUE), "Veranda", "Non Veranda"))
此外,您可能有兴趣了解dplyr 使用的非标准评估,这样您就不必从正在变异的 data.frame 中显式引用列名。
推荐阅读
- php - PHP 无法从 XML 标记中获取内部文本
- java - Spring Application 上下文在 ApplicationContextAware 类中为空
- r - openxlsx 中的换行符
- c++ - 在 Linux 上以编程方式获取准确的 CPU 缓存层次结构信息
- elasticsearch - ElasticSearch:是否可以按分数加权进行“加权平均聚合”?
- oracle - 调用 Stored Proc 时参数的数量或类型错误
- python - matplotlib 子图未显示
- reactjs - 用 Enzyme 测试 ReduxForm
- visual-studio - 使用 Visual Studio 2017 的 Wix 3.11 安装错误
- r - 在 Ubuntu 系统上的 R 中安装 Sodium 包时出现问题