楼主: huapeng66
906 2

[问答] 如何快速对字符串里面的内容去重? [推广有奖]

  • 6关注
  • 0粉丝

博士生

47%

还不是VIP/贵宾

-

威望
0
论坛币
5217 个
通用积分
7.0196
学术水平
3 点
热心指数
4 点
信用等级
2 点
经验
19496 点
帖子
133
精华
0
在线时间
320 小时
注册时间
2018-9-16
最后登录
2023-3-21

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

具体效果如下,能否尽量避免循环来处理?
去重前表格:
IDIndustry

1

2

3

影视;影视

4

5

6

影视;影视

7

影视;影视

8

影视;影视;影视;影视

9

珠宝艺术品;珠宝艺术品

10

影视;影视

11

影视;影视

12

影视;影视

13

影视;影视

14

珠宝艺术品;珠宝艺术品

15

电竞网游;珠宝艺术品;影视


去重后效果
IDIndustry

1

2

3

影视

4

5

6

影视

7

影视

8

影视

9

珠宝艺术品

10

影视

11

影视

12

影视

13

影视

14

珠宝艺术品

15

电竞网游;珠宝艺术品;影视


二维码

扫码加我 拉你入群

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

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

关键词:如何快速 字符串 Industry USTR Dust

testdata.xlsx

8.88 KB

沙发
huapeng66 学生认证  发表于 2021-5-18 09:52:11 |只看作者 |坛友微信交流群
我用以下方法处理,可解决问题,看看有没有更优化的办法?
  1. N <- NROW(testdata)
  2. for (i in 1:N){
  3.     if (is.na(data$Industry[i])){next}else{
  4.       data$Industry[i] <- data$Industry[i] %>%str_split(';')%>%unlist() %>% unique() %>% str_c(collapse = ";")
  5.       }
  6.   }
复制代码


已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

藤椅
owenqi 在职认证  学生认证  发表于 2021-5-18 10:51:54 |只看作者 |坛友微信交流群
不知道快不快,你可以比较一下。
  1. library(dplyr)
  2. library(stringr)
  3. library(purrr)
  4. library(tidyr)

  5. dup_remove <- testdata %>%
  6.   mutate(Industry = str_split(Industry, ';')) %>%
  7.   mutate(Industry = map(Industry, unique)) %>%
  8.   unnest_wider(Industry) %>%
  9.   unite(Industry, starts_with('...'), sep = ';', na.rm = TRUE)
复制代码
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-21 03:48