如何在R语言中为包含County/Cnty的行创建虚拟变量
新增标记指定关键词的虚拟变量列(R语言实现)
先把你的原始数据整理成便于后续操作的格式:
County_or_City <- c("Butte County", "Oroville", "Solano Cnty", "Redding", "Maripossa county") df <- data.frame(County_or_City)
这里给你两种常用的实现方法,按需选择:
方法一:Base R 原生实现
用grepl()函数匹配关键词,直接生成新列:
# 生成TRUE/FALSE格式的标记列 df$is_county <- grepl(pattern = "(Cnty|County|county)", x = df$County_or_City) # 如果需要0/1格式的虚拟变量,把逻辑值转成整数即可 df$is_county_num <- as.integer(grepl(pattern = "(Cnty|County|county)", x = df$County_or_City)) # 查看最终结果 df
运行后输出:
County_or_City is_county is_county_num 1 Butte County TRUE 1 2 Oroville FALSE 0 3 Solano Cnty TRUE 1 4 Redding FALSE 0 5 Maripossa county TRUE 1
方法二:tidyverse 工具链实现
如果你习惯用tidyverse的语法,结合dplyr和stringr包来操作:
library(dplyr) library(stringr) df <- df %>% mutate( is_county = str_detect(County_or_City, "(Cnty|County|county)"), is_county_num = as.integer(is_county) ) # 查看结果 df
输出结果和方法一完全一致。
说明
正则表达式(Cnty|County|county)表示匹配括号内任意一个关键词,grepl()和str_detect()都会返回逻辑值(TRUE/FALSE),转成整数后就得到0/1格式的标准虚拟变量。
内容的提问来源于stack exchange,提问作者RpySSMTM
相关产品推荐
相关产品推荐

