想在R语言中生成一个图形文件的文件名,前缀是fitbit,后面跟上月份,再加上".jpg",先不百度,试了试其它语言的类似语法,没一个可行的:
C#中:"fitbit" + month + ".jpg"
VB:"fitbit" & month & ".jpg"
Haskell:"fitbit" ++ month ++ ".jpg"
还想到concat之类的函数,都不行,看来只能查帮助了,原来必须要用一个paste函数。
paste()与paste0():连接字符串
paste()不仅可以连接多个字符串,还可以将对象自动转换为字符串再相连,另外它还能处理向量,所以功能更强大。
paste("fitbit", month, ".jpg", sep="")
这个函数的特殊地方在于默认的分隔符是空格,所以必须指定sep="",这样如果month=10时,就会生成fitbit10.jpg这样的字符串。
另外还有一个paste0函数,默认就是sep=""
所以paste0("fitbit", month, ".jpg")就与前面的代码简洁一点了。
要生成12个月的fitbit文件名:
paste("fitbit", 1:12, ".jpg", sep = "")
[1] "fitbit1.jpg" "fitbit2.jpg" "fitbit3.jpg" "fitbit4.jpg" "fitbit5.jpg" "fitbit6.jpg" "fitbit7.jpg"
[8] "fitbit8.jpg" "fitbit9.jpg" "fitbit10.jpg" "fitbit11.jpg" "fitbit12.jpg"
可以看出参数里面有向量时的捉对拼接的效果,如果某个向量较短,就自动补齐:
a
b
paste0(a, b)
[1] "甲子" "乙丑" "丙寅" "丁卯" "戊辰" "己巳" "庚午" "辛未" "壬申" "癸酉" "甲戌" "乙亥"
paste还有一个collapse参数,可以把这些字符串拼成一个长字符串,而不是放在一个向量中。
> paste("fitbit", 1:3, ".jpg", sep = "", collapse = "; ")
[1] "fitbit1.jpg; fitbit2.jpg; fitbit3.jpg"
nchar():求字符个数
nchar()能够获取字符串的长度,它和length()的结果是有区别的。
nchar(c("abc", "abcd")) #求字符串中的字符个数,返回向量c(3, 4)
length(c("abc", "abcd")) #返回2,向量中元素的个数
注意nchar(NA)返回2
tolower(x) 和toupper(x) :大小写转换。
不用多说。
strsplit:字符串分割
strsplit("2014-10-30 2262 10367 7.4 18 1231 77 88 44", split=" ")
[[1]]
[1] "2014-10-30" "2262" "10367" "7.4" "18" "1231" "77" "88" "44"
实际上这个函数支持非常强大的正则表达式。
substr与substring:提取子串
substr("abcdef", 2, 4)
[1] "bcd"
substr(c("abcdef", "ghijkl&#