专题4.字符串
字符串长度 str_length
str_length(x) #空格也算
字符串拆分 str_split
str_split(x," ") # 取出为列表 str_split(x," ")[ [1] ] # 取出为向量
按位置提取字符 str_sub
str_sub(x,5,9) #5~9字字符
字符检测 str_detect
str_detect(x,"h") #返回true or false str_starts srt_ends
字符串替换str_replace
str_replace(x,"","") str_replace_all
字符串删除str_remove
str_remove(x,"") str_remove_all
专题5.1.条件语句
if (一个逻辑值){
CODE1
}else{
CODE2
}
#ifelse函数
ifelse(x,yes,no)
ifelse(str_detect(x,"s"),"+","-") #联用可以用于分组
小作业
1.读取group数据,并从第二列中提取数据
data<- read.csv("group.csv") #注意加双引号
a<-str_split(data$title," ",simplify = T)[,4]
data$group <- a
2.把提取出的字符改为小写
data$group <- tolower(data$group)
3.加载deg.Rdata,根据a、b两列的值,按照以下条件生成向量x:
a< -1 且b<0.05,则x对应的值为down;
a>1 且b<0.05,则x对应的值为up;
其他情况,x对应的值为no
统计up、down、no各重复了多少次
x<-ifelse(deg$a < -1 & deg$b < 0.05,"down",
(ifelse(deg$a > 1 & deg$b < 0.05,"up","no")))
deg$x <- x
table(x)
down no up
1059 28863 853
专题5.2.循环语句
for(i in x){
CODE
}
#将结果保存
x <- c(5,6,0,3)
s = 0
result = list()
for(i in 1:length(x)){
s=s+x[[i]]
result[[i]] = c(x[[i]],s)
}
result
do.call(cbind,result)
do.call(rbind,result)
专题6.隐性循环
apply(x,MARGIN,FUN,...) # MARGIN 1表示行,2表示列 apply(test,2,mean) # 对test 每一列取平均值