加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

LearningR-数据处理

发布时间:2021-03-14 22:18:21 所属栏目:大数据 来源:网络整理
导读:R自带函数 reshape2 data restructuring dplyr data aggregation tidyr 待整理 字符串处理 1. R自带函数 1.1 转置 使用函数t()可对一个矩阵或数据框进行转置,对于数据框,行名将变成变量(列)名。 cars - mtcars(1:5,1:4)carst(cars) 数列array进行维度转

另外还有一个paste0函数,默认就是sep=""

5.3 分割字符 strsplit

strsplit(x,split,fixed = FALSE,perl = FALSE,useBytes = FALSE)
x <- c(as = "asfef",qu = "qwerty","yuiop[","b","stuff.blah.yech")
strsplit(x,"e")
#需要注意的细节
strsplit(paste(c("","")
strsplit(""," ")[[1]]
strsplit(" "," ")[[1]]

##倒序运用:
strReverse <- function(x)
        sapply(lapply(strsplit(x,NULL),rev),paste,collapse = "")
strReverse(c("abc","Statistics"))

5.4 提取字符 substr与substring

substr(x,start,stop)
substring(text,first,last = 1000000L)
substr(x,stop) <- value
substring(text,last = 1000000L) <- value
substr("abcdef",4)
substring("abcdef",1:6,1:6)

substr(rep("abcdef",4),1:4,4:5)
x <- c("asfef","qwerty","stuff.blah.yech")
substr(x,5)
substring(x,4:6)
substring(x,2) <- c("..","+++")

5.5 替换字符 sub和gsub

  • sub 只做一次替换(不管有几次匹配)

  • gsub 把满足条件的匹配都做替换

sub(pattern,replacement,x,ignore.case = FALSE,useBytes = FALSE)
gsub(pattern,useBytes = FALSE)

虽然sub和gsub是用于字符串替换的函数,但严格地说R语言没有字符串替换的函数,因为R语言不管什么操作对参数都是传值不传址。所以原字符串并没有改变,要改变原变量我们只能通过再赋值的方式。

text <- "Hello Adam!nHello Ava!"
sub(pattern="Adam",replacement="World",text)
text
sub(pattern="Adam|Ava",?replacement="World",?text)
gsub(pattern="Adam|Ava",?replacement="world",?text)

sub和gsub函数可以使用提取表达式(转义字符+数字)让部分变成全部

sub(pattern=".*(Adam).*",replacement="1",text)
str <- "Now is the time      "
sub(" +$","",str)
sub("[[:space:]]+$",str)
sub("s+$",str,perl = TRUE)
txt <- "a test of capitalizing"
gsub("(w)(w*)","U1L2",txt,perl=TRUE)
gsub("b(w)","U1",perl=TRUE)

5.6 字符查询匹配 grep

  • grep 返回匹配项的下标

  • grepl 返回所有查询结果的逻辑向量

  • regexpr

  • gregexpr

  • regexec
    regexpr、gregexpr和regexec这三个函数返回的结果包含了匹配的具体位置和字符串长度信息,可以用于字符串的提取操作。

x <- c("abc","abcdef","def")
grep("def",x)
#grep返回匹配项的下标
#grepl返回所有查询结果的逻辑向量。两者的结果都可用于提取数据子集
grepl("def",x)
regexpr、gregexpr和regexec

5.5 其他

  • 大小写转换 tolower与toupper

  • 列表转换为向量unlist
    unlist(x,recursive = TRUE,use.names = TRUE)

  • 重复输入rep()

rep(1:4,2)
rep(1:4,each = 2)
rep(1:4,2))
rep(1:4,1))
rep(1:4,each = 2,len = 4)
rep(1:4,len = 10)
rep(1:4,times = 3)

5.6 stringr包

stringr包是用来处理字符串的。(先挖坑...)

附录A 正则表达式

待整理

附录B

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读