1209 6

[问答] R 语言 [推广有奖]

  • 0关注
  • 0粉丝

本科生

7%

还不是VIP/贵宾

-

威望
0
论坛币
11419 个
通用积分
6.1410
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2226 点
帖子
26
精华
0
在线时间
98 小时
注册时间
2018-1-1
最后登录
2022-11-22

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
1、季节属性:包含全年 或者同时包含(春,夏,秋,冬),标为1非季节性,其余的标记为2季节性(不包含空值,不标记空值或者标记为3)
2、接下来对季节属性为空值,就判断变量标题里包含春,夏,秋,冬(只要包含其中一个字就可),标记为季节性,剩下的标记非季节性,怎么实现最右边的标记效果
90ED06F3-2C0B-4dc9-A117-DAA9BBE56D4D - 副本.png
二维码

扫码加我 拉你入群

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

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

关键词:季节性 接下来

回帖推荐

沙发
drunkfish69 发表于 2020-9-18 18:34:56 |只看作者 |坛友微信交流群
字符串操作可以这样做,程序结构自己去搭吧。
  1. library(tidyverse)

  2. # 刷一遍全年的 ------------------------------------------------------------------
  3. data <- '冬季双十一圣诞节全年'
  4. f.year <- str_detect(data, '全年')

  5. # 刷一遍4季的 ------------------------------------------------------------------
  6. data <- '冬季双十一圣诞节夏季秋季春季'
  7. keys <- c('春', '夏', '秋', '冬')
  8. match.keys <- str_c(keys, collapse = '|')
  9. seasons <- str_count(data, regex(match.keys))

  10. # seasons=4 等同全年,season=(1,2,3)季节性的,season=0 空
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
张小鱼爱吃鱼 + 5 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
张小鱼爱吃鱼 学生认证  发表于 2020-9-19 09:30:17 |只看作者 |坛友微信交流群

你好,code能写完整吗,我好测试下,下面写的但是会漏掉几种情况,求指点

# 季节属性包含全年
label <- ifelse(grepl("全年",mydata$季节属性), "非季节性", label)

# 季节属性同时包含春夏秋冬。顺序可能有变化,故判断春夏秋冬出现次数
label <- ifelse(stringr::str_count(mydata$季节属性,"[春夏秋冬]")==4, "非季节性","季节性")
label[mydata$季节属性==""] <- ifelse(grepl("[春夏秋冬]",mydata$季节属性[mydata$季节属性==""]), "季节性", "非季节性")

mydata$应实现标记效果 <-label

使用道具

板凳
张小鱼爱吃鱼 学生认证  发表于 2020-9-19 09:46:00 |只看作者 |坛友微信交流群
drunkfish69 发表于 2020-9-18 18:34
字符串操作可以这样做,程序结构自己去搭吧。
麻烦写完整,谢谢

使用道具

报纸
drunkfish69 发表于 2020-9-19 11:05:11 |只看作者 |坛友微信交流群
用dput(mydata)把样本数据贴在<code>里
  1. > dput(mtcars)
  2. structure(list(mpg = c(21, 21, 22.8, 21.4, 18.7, 18.1, 14.3,
  3. 24.4, 22.8, 19.2, 17.8, 16.4, 17.3, 15.2, 10.4, 10.4, 14.7, 32.4,
  4. 30.4, 33.9, 21.5, 15.5, 15.2, 13.3, 19.2, 27.3, 26, 30.4, 15.8,
  5. 19.7, 15, 21.4), cyl = c(6, 6, 4, 6, 8, 6, 8, 4, 4, 6, 6, 8,
  6. 8, 8, 8, 8, 8, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 8, 6, 8, 4),
  7.     disp = c(160, 160, 108, 258, 360, 225, 360, 146.7, 140.8,
  8.     167.6, 167.6, 275.8, 275.8, 275.8, 472, 460, 440, 78.7, 75.7,
  9.     71.1, 120.1, 318, 304, 350, 400, 79, 120.3, 95.1, 351, 145,
  10.     301, 121), hp = c(110, 110, 93, 110, 175, 105, 245, 62, 95,
  11.     123, 123, 180, 180, 180, 205, 215, 230, 66, 52, 65, 97, 150,
  12.     150, 245, 175, 66, 91, 113, 264, 175, 335, 109), drat = c(3.9,
  13.     3.9, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.92, 3.92,
  14.     3.07, 3.07, 3.07, 2.93, 3, 3.23, 4.08, 4.93, 4.22, 3.7, 2.76,
  15.     3.15, 3.73, 3.08, 4.08, 4.43, 3.77, 4.22, 3.62, 3.54, 4.11
  16.     ), wt = c(2.62, 2.875, 2.32, 3.215, 3.44, 3.46, 3.57, 3.19,
  17.     3.15, 3.44, 3.44, 4.07, 3.73, 3.78, 5.25, 5.424, 5.345, 2.2,
  18.     1.615, 1.835, 2.465, 3.52, 3.435, 3.84, 3.845, 1.935, 2.14,
  19.     1.513, 3.17, 2.77, 3.57, 2.78), qsec = c(16.46, 17.02, 18.61,
  20.     19.44, 17.02, 20.22, 15.84, 20, 22.9, 18.3, 18.9, 17.4, 17.6,
  21.     18, 17.98, 17.82, 17.42, 19.47, 18.52, 19.9, 20.01, 16.87,
  22.     17.3, 15.41, 17.05, 18.9, 16.7, 16.9, 14.5, 15.5, 14.6, 18.6
  23.     ), vs = c(0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
  24.     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1), am = c(1,
  25.     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
  26.     0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1), gear = c(4, 4, 4, 3,
  27.     3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3,
  28.     3, 3, 4, 5, 5, 5, 5, 5, 4), carb = c(4, 4, 1, 1, 2, 1, 4,
  29.     2, 2, 4, 4, 3, 3, 3, 4, 4, 4, 1, 2, 1, 1, 2, 2, 4, 2, 1,
  30.     2, 2, 4, 6, 8, 2)), row.names = c("Mazda RX4", "Mazda RX4 Wag",
  31. "Datsun 710", "Hornet 4 Drive", "Hornet Sportabout", "Valiant",
  32. "Duster 360", "Merc 240D", "Merc 230", "Merc 280", "Merc 280C",
  33. "Merc 450SE", "Merc 450SL", "Merc 450SLC", "Cadillac Fleetwood",
  34. "Lincoln Continental", "Chrysler Imperial", "Fiat 128", "Honda Civic",
  35. "Toyota Corolla", "Toyota Corona", "Dodge Challenger", "AMC Javelin",
  36. "Camaro Z28", "Pontiac Firebird", "Fiat X1-9", "Porsche 914-2",
  37. "Lotus Europa", "Ford Pantera L", "Ferrari Dino", "Maserati Bora",
  38. "Volvo 142E"), class = "data.frame")
复制代码

使用道具

地板
drunkfish69 发表于 2020-9-19 12:56:12 |只看作者 |坛友微信交流群
  1. library(tidyverse)

  2. sku <- read.csv('data.csv')
  3. sku.fy <- sku %>%
  4.   filter(str_detect(.$季节属性, '全年')) %>%
  5.   transmute(.$SKU, .$SKU标题, .$季节属性, lab = '非季节')

  6. keys <- c('春', '夏', '秋', '冬')
  7. match.keys <- str_c(keys, collapse = '|')
  8. sku.4s <- sku %>%
  9.   filter(!(str_detect(.$季节属性, '全年')) &
  10.            str_count(.$季节属性, regex(match.keys)) == 4) %>%
  11.   transmute(.$SKU, .$SKU标题, .$季节属性, lab = '非季节')
  12.          
  13. sku.season <- sku %>%
  14.   filter(!(str_detect(.$季节属性, '全年')) &
  15.            str_count(.$季节属性, regex(match.keys)) < 4 &
  16.            str_count(.$季节属性, regex(match.keys)) > 0) %>%
  17.   transmute(.$SKU, .$SKU标题, .$季节属性, lab = '季节性')        

  18. sku.title.season <- sku %>%
  19.   filter(!(str_detect(.$季节属性, '全年')) &
  20.            str_count(.$季节属性, regex(match.keys)) == 0) %>%
  21.   filter(str_count(.$SKU标题, regex(match.keys)) > 0) %>%
  22.   transmute(.$SKU, .$SKU标题, .$季节属性, lab = '季节性')

  23. sku.title.no <- sku %>%
  24.   filter(!(str_detect(.$季节属性, '全年')) &
  25.            str_count(.$季节属性, regex(match.keys)) == 0) %>%
  26.   filter(str_count(.$SKU标题, regex(match.keys)) == 0) %>%
  27.   transmute(.$SKU, .$SKU标题, .$季节属性, lab = '不知道')

  28. sku.labeled <- rbind(sku.fy, sku.4s, sku.season, sku.title.season, sku.title.no)

  29. write.csv(sku.labeled, 'sku.csv')
复制代码
已有 1 人评分学术水平 热心指数 收起 理由
张小鱼爱吃鱼 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

7
张小鱼爱吃鱼 学生认证  发表于 2020-9-19 15:02:35 |只看作者 |坛友微信交流群
drunkfish69 发表于 2020-9-19 12:56
很有启发,谢谢

使用道具

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

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

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

GMT+8, 2024-4-19 17:15