主要把学习工作中遇到的一些基础知识记下来,方便查看。
result <- tryCatch({
}, warning = function(w){
}, error = function(e){
paste0('错误: ', e) #这里的e就是字符串
}, finnally = {
}
)
tryCatch()本身是一个函数,不报错时返回第一个表达式的结果,如果警告或者报错就返回wanining或者error的函数返回值。
无论如何,finnally中的表达式一定会执行,但不会作为tryCatch()的返回值。
text = "abcDEF"
toupper(text)
tolower(text)
# [1] "ABCDEF"
# [1] "abcdef"
功能:都是替换字符串。
sub和gsub参数都一样,例如:(pattern = , replacement = , text),
三函数区别是:sub只替换第一个符合条件的数据,gsub替换所有符合条件的数据,这两个函数都是把字符串
作为一个整体替换;而chartr是对单个字符进行替换。
sub("a", "@", 'a1a2a3')
#[1] "@1a2a3"
gsub("a", "@", 'a1a2a3')
#[1] "@1@2@3"
chartr("abc", "123", "a1b2c3")#第一个参数的长度不能大于第二个参数。
#[1] "112233"
格式:paste(p1, p2, sep=”, collapse=”)。paste0()默认sep=”
paste(c("a", "b"), c("1", "2"), sep = '+')
#[1] "a+1" "b+2" 结果是含有两字符串元素的向量
paste(c("a", "b"), c("1", "2"), sep = '+', collapse = '=')
#[1] "a+1=b+2" 结果为一个字符串
strsplit函数使用正则表达式,使用格式为:
strsplit(x, split, fixed = FALSE, perl = FALSE, useBytes = FALSE)
- 参数x为字串向量,每个元素都将单独进行拆分。
- 参数split为拆分位置的字串向量,默认为正则表达式匹配(fixed=FALSE)。
如果你没接触过正则表达式,设置fixed=TRUE,表示使用普通文本匹配或正则表达式的精确匹配。普通文本的运算速度快。
- perl=TRUE/FALSE的设置和perl语言版本有关,如果正则表达式很长,正确设置表达式并且使用perl=TRUE可以提高运算速度。
- 参数useBytes设置是否逐个字节进行匹配,默认为FALSE,即按字符而不是字节进行匹配。
strsplit("a,b,c, ", ',')
#[[1]]
#[1] "a" "b" "c" " "
grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE, fixed = FALSE, useBytes = FALSE, invert = FALSE)
grepl(pattern, x, ignore.case = FALSE, perl = FALSE, fixed = FALSE, useBytes = FALSE)
grep()返回字符串元素所在的位置,grepl()返回对应元素的逻辑结果,支持正则。
match()返回第一个匹配元素的位置,完全一样才算匹配,不支持正则。
grep("abc$", c("abc", "dabce","a"))
# [1] 1
grepl("abc$", c("abc", "dabce","a"))
# [1] TRUE FALSE FALSE
match("a",c("abc", "a", "bca", 'a'))
[1] 2
这三个函数返回的结果包含了匹配的具体位置和字符串长度信息,可以用于字符串的提取操作。
“`