函数stringr功能
str_length() #测定字符串长度
str_split() #拆分字符串
str_sub() #按照位置提取字符
str_detect() #检测是否包含某个字符
str_replace() #替换首次出现的某个字符
str_replace_all() #替换所有字符
str_remove() 删除字符
str_remove_all() 删除所有字符
玩转数据框
1. arrange() #排序
arrange(test, Sepal.Length) #从小到大
arrange(test, desc(Sepal.Length)) #从大到小 desc()
2. distinct,数据框按照某一列去重复
distinct(test,Species,.keep_all = T) #.keep_all 保留全部列
3. mutate,数据框新增一列
mutate(test, new = Sepal.Length * Sepal.Width) #没有赋值就没有发生过
test = mutate()
4. 筛选
filter() #筛选行
select() #筛选列
逻辑算法
① 管道符号快捷键
shift + control + M
② 条件代码
if(条件,一个逻辑值){条件正确执行操作}else{条件错误进行的操作}
if(条件,一个逻辑值){条件正确执行操作}else if(条件){第二个条件正确进行的操作}
用上述方法就可以同时实现多个条件
ifelse条件函数
ifelse(条件, 条件成立输出, 条件不成立输出)
tips:ifelse()+srt_detect() 分组王炸!
t1 = str_detect(samples, "tumor") # 检测样本名中是否有tumor
ifelse(t1, "tumor', "normal") #如果样本名中包含tumor则输出tumor,反之则输出normal
data[, 4] = ifelse(t1, "tumor', "normal") #在data矩阵中增加一列,内容为分组情况
ifelse()中条件不成立输出的一栏可以再增加ifelse()代码,进行多个条件判断
③ for循环 for (i in x){执行操作}
两种循环方式
(1) 元素循环
for(i in x){s= s+i}
(2)下标循环
for (i in 1:length(x)){s= s+x[[i]]}
元素循环无法保存,下标循环可以保存;注意要对for循环结果进行保存
for循环中取子集需要用两个[]
PS: 判断两个数据是否一致 identical(x1, x2),返回True则数据完全一致
正文完