楼主: 18174715760
935 6

[问答] 如何提取字符串到同一个变量 [推广有奖]

  • 0关注
  • 0粉丝

本科生

25%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
0.8141
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3171 点
帖子
51
精华
0
在线时间
89 小时
注册时间
2022-3-8
最后登录
2025-4-25

楼主
18174715760 发表于 2022-12-14 11:00:09 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我现在有一个地区的变量,里面包含很多长度、内容不一致的字符串,但都包含行政区的名称,我想将这些不同的行政区名称提取出来,变成一个行政区的变量,想问一下大家,如果不用for循环的话能操作么?

微信图片_20221213214417.png
mydataa.xlsx (11.53 KB)

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:如何提取 字符串 for循环 行政区 For

回帖推荐

zhjx19 发表于2楼  查看完整内容

逐元素for循环是早该彻底抛弃的思维,看看向量化、数据化编程思维有多么简洁、优雅: 当然你的数据可以直接从Excel文件读取,不用这样手动创建。 另外,涉及文本字符串的操作,通常需要正则表达式,这里中括号部分是匹配任意汉字。 想学习这种简洁、优雅的数据编程思维,或者想让自己R语言知识汰旧换新,学习我分享的免费课件就行了: [学习分享] 张敬信:分享我的1393页《R语言编程:基于tidyverse》完整课 ...

llb_321 发表于3楼  查看完整内容

原数据如果都是用逗号分隔的话,可以看下面的示例,把d换成那列数据的变量名即可:

本帖被以下文库推荐

沙发
zhjx19 发表于 2022-12-14 12:36:23
逐元素for循环是早该彻底抛弃的思维,看看向量化、数据化编程思维有多么简洁、优雅:

  1. library(tidyverse)
复制代码



1111.jpg

当然你的数据可以直接从Excel文件读取,不用这样手动创建。

另外,涉及文本字符串的操作,通常需要正则表达式,这里中括号部分是匹配任意汉字。

想学习这种简洁、优雅的数据编程思维,或者想让自己R语言知识汰旧换新,学习我分享的免费课件就行了:

[学习分享] 张敬信:分享我的1393页《R语言编程:基于tidyverse》完整课件

藤椅
llb_321 在职认证  发表于 2022-12-14 14:43:35
原数据如果都是用逗号分隔的话,可以看下面的示例,把d换成那列数据的变量名即可:
  1. library(stringr)
  2. d <- c("哈尔滨市,南岗区,西大直街",
  3.        "上海市,浦东新区,科技园区",
  4.        "昆明市,盘龙区东风西路",
  5.        "上海市,虹口区,某某小区",
  6.        "首钢小区,北京市,房山区,中国",
  7.        "大庆市,龙新园区,经济开发区,萨尔图区",
  8.        "新疆维吾尔族自治区,乌鲁木齐市,沙依巴克区")
  9. str_extract(d, "[[:punct:]]{0}[\u4e00-\u9fa5]{2,}(?<!治|小|发|园|高新|易)区")

  10. #[1] "南岗区"     "浦东新区"   "盘龙区"     "虹口区"     "房山区"   
  11. #[6] "萨尔图区"   "沙依巴克区"
复制代码

板凳
zhjx19 发表于 2022-12-14 15:21:03
zhjx19 发表于 2022-12-14 12:36
逐元素for循环是早该彻底抛弃的思维,看看向量化、数据化编程思维有多么简洁、优雅:
library(tidyverse)
df = tibble(
  x = c("黄渡敬老院,新黄路,嘉定区,上海市,201804,中国",
        "伴亭路,九里亭街道,松江区,上海市,201101,中国",
        "豫园,人民路,外滩街道,黄浦区,上海市,200010,中国",
        "若瑟登36,四川南路,外滩街道,黄浦区,上海市,200002,中国",
        "崇明区,上海市,中国",
        "崇明区,上海市,中国"))

df %>%
  mutate(区 = str_extract(x, "[\u4e00-\u9fa5]+区")) %>%
  distinct(区)

报纸
18174715760 发表于 2022-12-14 19:17:30
zhjx19 发表于 2022-12-14 12:36
逐元素for循环是早该彻底抛弃的思维,看看向量化、数据化编程思维有多么简洁、优雅:
确实呀,for循环要跑好久!谢谢大师!

地板
18174715760 发表于 2022-12-14 19:18:50
llb_321 发表于 2022-12-14 14:43
原数据如果都是用逗号分隔的话,可以看下面的示例,把d换成那列数据的变量名即可:
好方便快捷!谢谢谢呀

7
18174715760 发表于 2022-12-14 19:23:41
zhjx19 发表于 2022-12-14 15:21
library(tidyverse)
df = tibble(
  x = c("黄渡敬老院,新黄路,嘉定区,上海市,201804,中国",
[em23]谢谢张老师!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-6 06:49