【发布时间】:2018-10-24 11:08:33
【问题描述】:
我有一个数据框。
city <- as.character(c("London", "Unknown", "Birmingham", "Bristol", "Unknown", "Unknown", "Unknown", "Unknown"))
city_details <- as.character(c("London", "Camden", "Birmingham", "Outside London", "Camden Town", "Westminster", "London", "Birmingham"))
city_data <- data.frame(city, city_details)
尽管 city 列中的一些值是未知的,但查看 city_details 会发现其中大部分实际上都在伦敦。
所以,我可以替换其中的一些:
city_data$city[grepl("Camden|Westminster", city_data$city_details)] <- 'London'
但是,在 city_details 中显示“London”的那个更难,因为还有一个显示“Outside London”,所以我不想只拿起任何有“London”的东西里面的图案。
出于此目的,我不是在寻找一种只包含完全匹配的方法(因为这对于我的真实数据来说并不完全正确)。
所以我想做的只是对未知的城市值执行此替换。
目前我尝试了以下方法,但显然逻辑不正确,因为它实际上所做的只是将城市列中的所有未知值更改为伦敦。
city_data <- within(city_data, city[city == "Unknown"] <- (city[grepl("London", city_details)] <- 'London'))
谁能帮忙?
【问题讨论】: