You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言批量重命名数据框单元格,实现英国警局按地区分组

批量重命名警局为所属地区的解决方案

Hey there! 作为R语言新手处理这么大的犯罪数据集确实挺有挑战的,别担心,咱们来轻松搞定批量重命名的问题~

首先,咱们先明确一个核心:先把需要分组的警局和对应的地区整理成一个对照表,这样以后要改规则或者加新警局都超方便,比一个个改单元格高效太多了!

方法1:用Base R(不用装新包,开箱即用)

如果你不想额外安装包,用Base R的命名向量匹配就很高效,特别适合大数据集:

# 第一步:先搞个「警局-地区」映射表,想加新的直接往下加就行
force_to_region <- c(
  "Avon and Somerset" = "South West",
  "Dorset" = "South West",
  "Gloucester" = "South West",
  "Wiltshire" = "South West",
  # 举个例子,你可以继续加其他分组:
  "Metropolitan Police" = "London",
  "West Midlands" = "West Midlands"
)

# 第二步:批量生成地区列(假设你的警局列名叫"force",记得换成你实际的列名!)
# 新增一个region列,保留原force列
crimedata19_20$region <- force_to_region[crimedata19_20$force]

# 要是想直接覆盖原有的force列,就用这句:
# crimedata19_20$force <- force_to_region[crimedata19_20$force]

如果遇到不在映射表里的警局,上面的代码会返回NA,要是你想处理这些情况(比如保留原名或者标成"Other"),加个简单的判断就行:

crimedata19_20$region <- ifelse(
  is.na(force_to_region[crimedata19_20$force]),
  crimedata19_20$force, # 保留原警局名
  # 或者改成"Other":
  # "Other",
  force_to_region[crimedata19_20$force]
)

方法2:用tidyverse的dplyr(语法更直观,新手友好)

如果你习惯用tidyverse的“管道流”语法,case_when()会让分组规则一目了然,特别适合规则多的情况:

先确保你装了dplyr(没装的话先跑第一行):

install.packages("dplyr")
library(dplyr)

然后用管道操作批量处理:

crimedata19_20 <- crimedata19_20 %>%
  mutate(
    region = case_when(
      # 把属于South West的警局放一起
      force %in% c("Avon and Somerset", "Dorset", "Gloucester", "Wiltshire") ~ "South West",
      # 继续加其他分组规则,比如:
      force == "Metropolitan Police" ~ "London",
      force %in% c("West Midlands", "Staffordshire") ~ "West Midlands",
      # 最后处理所有没匹配到的情况
      TRUE ~ force # 保留原警局名,或者改成"Other"都行
    )
  )

为啥这两种方法适合你的大数据集?

这俩都是向量化操作,不像逐个改单元格那样循环遍历每一行,速度快到飞起,完全hold得住你合并后的900个文件的大数据集!而且映射规则清晰,以后维护起来超省心。

小提醒:

  1. 先确认你的警局列叫啥!用colnames(crimedata19_20)就能看到所有列名,记得把代码里的force换成你实际的列名哈。
  2. 可以先拿一小部分数据测试!比如用sample_n(crimedata19_20, 100)抽100行试试,确认替换对了再应用到整个数据集,避免出问题~

内容的提问来源于stack exchange,提问作者Lactuca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:19:59