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

将字符串末尾内容移至开头:R语言数据框地名格式调整

调整R语言数据框中NMUN字段的文本顺序

需求说明

现有一个R语言数据框,其中NMUN字段的文本格式为[主体内容], [前缀],需要将每个字段里最后一个逗号之后的内容移到字段开头,最终格式变为[前缀] [主体内容]。

原始数据示例:

NMUN
1      Cubo de Tierra del Vino, El
2                     Peraleja, La
3                       Franco, El
4  Pont de Vilomara i Rocafort, El
5                      Gabias, Las
6                       Adrada, La
7                          Bola, A
8                       Fayos, Los
9                     Recuenco, El

期望输出示例:

NMUN
El Cubo de Tierra del Vino
La Peraleja
El Franco
El Pont de Vilomara i Rocafort
Las Gabias

原始数据的R语言定义:

data = structure(list(NMUN = c("Cubo de Tierra del Vino, El", "Peraleja, La", 
"Franco, El", "Pont de Vilomara i Rocafort, El", "Gabias, Las", 
"Adrada, La", "Bola, A", "Fayos, Los", "Recuenco, El", "Pobra do Brollón, A", 
"Viso de San Juan, El", "Viso del Alcor, El", "Granjuela, La", 
"Bòrdes, Es", "Guingueta d'Àneu, La", "Villares, Los", "Grove, O", 
"Losar del Barco, El", "Iglesuela, La", "Vall de Bianya, La")), row.names = c(NA, 
-20L), class = "data.frame")

解决方案

方法1:使用stringr包(语法简洁,推荐)

先安装并加载stringr包,通过正则拆分最后一个逗号前后的内容,再重新拼接:

# 首次使用需安装包
# install.packages("stringr")
library(stringr)

# 拆分文本并重组顺序,同时去除多余空格
data$NMUN <- str_c(
  str_trim(str_split_fixed(data$NMUN, ",(?=[^,]*$)", 2)[,2]),
  str_trim(str_split_fixed(data$NMUN, ",(?=[^,]*$)", 2)[,1])
)

# 查看前5条结果
head(data$NMUN, 5)

方法2:使用基础R(无需额外安装包)

用strsplit结合正则拆分,再通过循环重组内容:

# 按最后一个逗号拆分每个字符串
split_content <- strsplit(data$NMUN, ",(?=[^,]*$)", perl = TRUE)

# 重组顺序并去除空格
data$NMUN <- sapply(split_content, function(x) {
  paste(str_trim(x[2]), str_trim(x[1]))
})

# 查看前5条结果
head(data$NMUN, 5)

最终结果示例

执行任意方法后,data$NMUN的内容将变为:

[1] "El Cubo de Tierra del Vino"    "La Peraleja"                   "El Franco"                    
[4] "El Pont de Vilomara i Rocafort" "Las Gabias"                    "La Adrada"                    
[7] "A Bola"                        "Los Fayos"                     "El Recuenco"                  
[10] "A Pobra do Brollón"            "El Viso de San Juan"           "El Viso del Alcor"            

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:40:27