创建重复元素
rep(c("A","B","C"),times=3) #向量整体3个重复
#"A" "B" "C" "A" "B" "C" "A" "B" "C"
rep(c("A","B","C"),each=2) #向量内部各个元素重复2遍
#"A" "A" "B" "B" "C" "C"
rep(c("A","B","C"),each=2,times=3) #向量内部各个元素重复2遍,整体再重复三次
# "A" "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C" "A" "A" "B" "B" "C" "C"
sample1 <- rep(c("A","B","C","D","E"),times=1,each=3) #先让每个元素重复3次(times和each可以分别对应技术重复和生物学重复)
paste0(sample1,1:3) #再和1:3的向量拼合,即实现生成样本的多次重复的名称
# "A1" "A2" "A3" "B1" "B2" "B3" "C1" "C2" "C3" "D1" "D2" "D3" "E1" "E2" "E3"
-
目录与文件操作参考
-
创建目录
dir.create("ABC/")
列出当前目录的文件夹结构
list.dirs()
列出当前目录内所有文件
dir()
-
创建文件
file.create("ABC/README.MD")
-
删除文件夹
unlink("ABC",recursive=TRUE)
-
删除文件
file.remove("ABC/123.txt")
-
移动文件
file.copy(from="C:/user/data.csv",to="D:/geneinfo/")
-
追加文件
file.append(file1,file2)
-
可以手动选择文件 file.choose(new=FALSE)
-
file.show
-
file.edit("gene.csv") #编辑文件,如果不存在则先创建再编辑
-
-
字符值的处理
-
字符串函数参考
-
返回向量,列表,矩阵,数据框元素个数
lengeh(list1)
-
返回字符串的字符数
nchar(head(list1))
-
拼接字符串
cat("this is ","a test ","file")
当行很长时可以设置fill自动换行。
cat("长字符串","changzifuchuan ","很长很长的字符串",fill=TRUE)
cat("长字符串","changzifuchuan ","很长很长的字符串",fill=30)
-
获取字符串的字串
substr("asddfcerwv4rwevw4rvrfeed32e4ef32",1,6)
输出第1到6个字符substring("asddfcerwv4rwevw4rvrfeed32e4ef32",1:5,5:6)
-
grep()函数可以接受正则
-
strsplit()可以接受正则
strsplit(str,'+')
#分割一段话,以空格分割strsplit(str,split=', ')
#以,
分割
-
-
NA的处理[参考] (https://blog.csdn.net/Ssxysxy123/article/details/51774472)
-
删除空值 (可以是向量,list,dataframe)
na.omit=TRUE
#在某些函数中的参数data <- na.omit(data)
#删除data中的空值 -
统计缺失值的个数 sum(is.na(Gene_id))
-
统计完整值的个数
sum(complete.cases(geneID))
-
-
-
dplyr包的使用
-
正则匹配
-
包的安装使用参考
-
安装方式1
install.packages("ggplot2")
-
方式2
-
if (!requireNamespace("BiocManager", quietly = TRUE))
BiocManager::install("DESeq2")
install.packages("BiocManager")
install.packages("pheatmap")
##从本地安装包(一般不建议,需要自己解决包的依赖包问题)
install.packages("./BiocInstaller_1.20.1.zip", repos = NULL)
* 包的载入 `library("ggplot2")`
* 包的卸载 (是从加载的环境卸载,不是删除) `detach("package:ggplot2")`
* 包的删除 `remove.package(c("pkg1","pkg2"),lib=file.path("path"),"to","library")`
pkg1,pkg2表示要删除的包的名字,一次可以删除多个包
"path", "to", "library"表示R的库路径,字符向量,通常情况下只输一个路径即可。使用命令.libPaths()可以查看库路径。
* remove.packages(c('AnnotationHub'),lib=file.path('G:/R-3.6.1/library'))**
3. * 查看已安装的包 [参考](https://blog.csdn.net/zc02051126/article/details/38053069) `installed.packages()[,c('Package','Version','LibPath')]`
* 查看已加载的包 `(.packages())`
4. 某个包无法更新或者更新失败 终极大招,关闭R和R-studio,删除library这个文件夹下对应的包的文件夹。library的路径可以从上一步看出。我的是G:/R-3.6.1/library
5. 更新所有包 `update.packages()`
6. 查看R版本 `R.version`
7. citation()用于查看指定包的文献引用
`citation("clusterProfiler")` 会返回该包的作者信息,方便写文章时引用。
-
帮助
-
某个包的帮助
help(package="ggplot2")
-
某个函数属于哪个包 help(函数名)或者?函数名
-
打开所有的帮助文档
help.start()
-
对于某个函数的具体用法,可以光标放在该函数上,按下F1查看帮助
-
-
数据的保持与清除
-
清屏 ctrl+L
-
显示目前存储在R中的对象的名字
objects()
-
rm(x,y,temp)
删除x,y,temp这些对象由于R中会把所有的数据对象保存到工作环境,即.RData中。再次启动时,会把这些变量挂载上,所以如果不需要使用了,就删除对象。
输出当前工作环境的包和R的版本信息 (主要用于问题解决和包的开发等环境时使用)
sessionInfo()
-
参考地址:
R里面科学计数法
一定要注意,R里面传入科学计数法的格式和想象的并不一样。
- 常规的科学计数法 3.58X10E-9
- R里面对应的表示法3.58E-9
特别注意,R里表示10的次幂时,不是10E
R里10E6
的输入是1E6
科学计数法和非科学计数法相互转换
y <- 3.8981E5
format(y,scientific = F) #"389810"
format(y,scientific = T,digits = 4) #"3.898e+05" digits是保留的数字的位数
控制台的输出
- print()
print("this is a test file")
出来的内容前面总是有一个[x] - warning()
warning("The less than 0.05 value will be delete!")
出来的内容是红色的:第一行是Warning message:
一般用于警告,引起重视。 - stop()
stop("Need 3 parameter!")
内容是红色的,而且会中断程序。用于中断程序,并给出报错信息 - message()
message("Outfile is ","new.csv")
内容是红色的。一般是给出重要的信息 message内置了paste0函数,所以会自动拼接多个字符。