我有一个记录集,其中有三列用于街道地址.填写表格的人有时会认为"街道地址2"代表"城市、州和邮政编码".我想删除"街道地址2"中的条目,如果看起来这是个人所做的.考虑到Excel中解决方案的简单性,我发现在R/TidyVerse中很难做到这一点.下面是一个例子:

df <- data.frame(address2=c("Tulsa, OK", "Apt. 1","Harbor Club Apartments"), city = c("Tulsa", "Tulsa", "Tulsa"))

在这个示例df中,我预计我的代码将把记录1:Address2设置为等于NA.我已经try 了几次ifElse语句的迭代,但都无济于事,似乎最有希望的方法是使用str_Detect(),如下所示:

df <- mutate(address2 = ifelse(str_detect(df$address2,df$city)),NA, address2)

理论上,如果在Address2记录中发现"Tulsa",则应将Address2设置为NA,否则应保留Address2记录.但是,它给了我一个错误:

UseMethod("变异体")出错: 对于"Logical"类的对象,没有适用的方法来应用"Mariate"

对于如何做到这一点以及为什么这不起作用,任何 idea 都将受到极大的赞赏.最佳--史蒂夫

推荐答案

您的方法很好,但有一些语法问题需要更正,例如

library(tidyverse)

df <- data.frame(address2=c("Tulsa, OK", "Apt. 1","Harbor Club Apartments"),
                 city = c("Tulsa", "Tulsa", "Tulsa"))
df
#>                 address2  city
#> 1              Tulsa, OK Tulsa
#> 2                 Apt. 1 Tulsa
#> 3 Harbor Club Apartments Tulsa

df <- mutate(df, address2 = if_else(str_detect(address2, city), NA, address2))
df
#>                 address2  city
#> 1                   <NA> Tulsa
#> 2                 Apt. 1 Tulsa
#> 3 Harbor Club Apartments Tulsa

创建于2023-10-11年第reprex v2.0.2

R相关问答推荐

我可以截断10字节的扩展数并转换为8字节的double吗?

在ggplot的注释表格中突出显示最大值

在特定列上滞后n行,同时扩展框架的长度

更新合适的R mgcv::bam模型报告无效类型(关闭).'';错误

检测(并替换)字符串中的数学符号

selectInput不返回ALL,并将因子转换为shiny 的数字

如何在编辑列时更新可编辑数据表,并使用该表在Shiny中执行连续计算

在R中使用数据集名称

如何在ggplot图中找到第二轴的比例

将文件保存到新文件夹时,切换r设置以不必创建目录

在数组索引上复制矩阵时出错

跨列查找多个时间报告

提高圣彼得堡模拟的速度

将摘要图添加到facet_WRAP gglot的末尾

R中治疗序列的相对时间指数

变异以按组从其他列创建具有最大和最小值的新列

如何从嵌套数据中自动创建命名对象?在R中

如何在R中使用因子行求和?

无法保存gglot的所有pdf元素

带有Bootswatch Cerulean主题的shiny 仪表板中的浏览&按钮可见性问题