R系列之在R中使用Python的字符串操作

这篇文章学习了在R中使用Python的格式化字符串方法

背景

在R中使用字符串拼接主要使用的是paste函数,虽然也很好用,但是相比于Python却非常臃肿,比如Python中如果想要实现字符串拼接直接使用+即可,如果想要格式化字符串可以使用format函数,而R中没有类似的函数,实现类似的功能就要使用paste,非常复杂。今天在看别人代码的时候发现别人使用了pystr这个包,其主要作用就是将Python中的格式化字符串的方法引入到了R中,当然也包括一些其他的对字符串操作的函数。


安装

1
2
library(devtools)
devtools::install_github("nicolewhite/pystr")

格式化字符串

索引表示字符顺序

使用索引来表示字符串替换的顺序,替换使用的字符串形式非常灵活,可以直接作为单独的参数,也可以使用向量作为参数,也可以使用列表作为参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 直接作为参数传递
# 注意:即使只有一个元素,前面的1,2也不能缺省
pystr_format("Hello {1}, my name is {2}.", "World", "Nicole")
[1] "Hello World, my name is Nicole."

# 使用向量
params = c("World", "Nicole")
pystr_format("Hello {1}, my name is {2}.", params)
[1] "Hello World, my name is Nicole."

# 通过列表传递
params = list("World", "Nicole")
pystr_format("Hello {1}, my name is {2}.", params)
[1] "Hello World, my name is Nicole."


名称表示字符顺序

1
2
3
4
5
6
7
8
9
10
11
12
13
# 单独的参数
pystr_format("Hello {thing}, my name is {name}.", thing="World", name="Nicole")
[1] "Hello World, my name is Nicole."

# named vector
params = c(thing="World", name="Nicole")
pystr_format("Hello {thing}, my name is {name}.", params)
[1] "Hello World, my name is Nicole."

# named list
params = list(thing="World", name="Nicole")
pystr_format("Hello {thing}, my name is {name}.", params)
[1] "Hello World, my name is Nicole."

重复的参数

参数在需要格式化的字符串中可以重复使用:

1
2
3
# last重复使用了,都会使用相同的参数值进行替换
pystr_format("The name is {last}. {first} {last}.", last="Bond", first="James")
[1] "The name is Bond. James Bond."


传入的数据类型

1
2
3
# 可以是数字也可以是字符串
pystr_format("Hello {name}, you have {n} new notifications!", name="Nicole", n=3)
[1] "Hello Nicole, you have 3 new notifications!"

其他常用功能

  • pystr_capitalize:首字母大写
  • pystr_count:计算字符串重复出现的次数
  • pystr_endswithpystr_endswith:是否一某个字符串结尾或开头

参考链接



-----本文结束感谢您的阅读-----

本文标题:R系列之在R中使用Python的字符串操作

文章作者:showteeth

发布时间:2020年05月15日 - 22:35

最后更新:2020年05月25日 - 21:27

原始链接:http://showteeth.tech/posts/24871.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%