大家最近吃到平安经的瓜了吗?某地高官写的十几万字废话经,部分图片如下:
朋友圈大批吃瓜群众声称要写开心经,幸福经,来来来,我教你省点劲~ 开玩笑啦,我们来以这篇废话经为例讲几个字符串技巧啊
step1 找到主体
万物皆可平安(手动狗头),就来个机场吧
ap = "北京首都国际机场、上海浦东国际机场、广州白云国际机场、成都双流国际机场、深圳宝安国际机场、昆明长水国际机场、上海虹桥国际机场、西安咸阳国际机场、重庆江北国际机场、杭州萧山国际机场"
ap
## [1] "北京首都国际机场、上海浦东国际机场、广州白云国际机场、成都双流国际机场、深圳宝安国际机场、昆明长水国际机场、上海虹桥国际机场、西安咸阳国际机场、重庆江北国际机场、杭州萧山国际机场"
step2 拆分,加“平安”两字,再组合
拆分字符串的函数:str_split
连接字符串的函数:str_c
或者paste
library(stringr)
ap2 = str_split(ap,"、")[[1]];ap2
## [1] "北京首都国际机场" "上海浦东国际机场"
## [3] "广州白云国际机场" "成都双流国际机场"
## [5] "深圳宝安国际机场" "昆明长水国际机场"
## [7] "上海虹桥国际机场" "西安咸阳国际机场"
## [9] "重庆江北国际机场" "杭州萧山国际机场"
ap3 = str_c(ap2,"平安",sep = "");ap3
## [1] "北京首都国际机场平安"
## [2] "上海浦东国际机场平安"
## [3] "广州白云国际机场平安"
## [4] "成都双流国际机场平安"
## [5] "深圳宝安国际机场平安"
## [6] "昆明长水国际机场平安"
## [7] "上海虹桥国际机场平安"
## [8] "西安咸阳国际机场平安"
## [9] "重庆江北国际机场平安"
## [10] "杭州萧山国际机场平安"
ap4 = str_c(ap3,collapse = ",");ap4
## [1] "北京首都国际机场平安,上海浦东国际机场平安,广州白云国际机场平安,成都双流国际机场平安,深圳宝安国际机场平安,昆明长水国际机场平安,上海虹桥国际机场平安,西安咸阳国际机场平安,重庆江北国际机场平安,杭州萧山国际机场平安"
sep
和 collapse
这两个参数比较容易混淆,sep是分隔符,给每个机场后面都加上平安,写sep = ""
意为不要分隔符(等于直接用paste0);collapse
可以理解成标点,就是把每个单句连接到一起,标点用collapse
参数指定~
一句代码搞定也行
就是太太太难读啦!
paste(paste0(str_split(ap,"、")[[1]],"平安"),collapse = ",")
## [1] "北京首都国际机场平安,上海浦东国际机场平安,广州白云国际机场平安,成都双流国际机场平安,深圳宝安国际机场平安,昆明长水国际机场平安,上海虹桥国际机场平安,西安咸阳国际机场平安,重庆江北国际机场平安,杭州萧山国际机场平安"
想换主体随便换,想换“开心”,“幸福”也随你,去吧去吧。
题外话
我讲课时,paste和paste0这两个函数都会讲到,所以每次每次每次,100%都有学员问"这两个函数什么区别"。
我的答案是,你自己试试看。有什么区别,一不一样,行不行,这样二选一的问题,是完全可以自己探索得到答案的,这个叫扩展性学习~
遇到问题先搜一搜,试一试~刚巧上面这个问题,这两个方式都可以实现,加油(ง •_•)ง
网友评论