R语言细节汇总
- 查看是否安装某个包:
requireNamespace("nnls", quietly = TRUE)
. 加载R包除了library()
函数还有require()
函数。如果安装了某个包,require()
就会返回TRUE,并加载R包。没安装就会返回FALSE. - 查看R包在线帮助文档
browseVignettes('stringr')
&, |
return a vector,&&, ||
return a number.
== | identical(x,y) |
all.equal(x,y,tolerance=) |
dplyr::near() |
---|---|---|---|
返回等长向量 | 完全相等 | 容许误差 | 容许误差 |
ctrl+shift+R
添加注释;dir('path',recursive=F)
返回当前路径下的文件,recursive=T
会返回目录下所有文件;dir.create('path')
创建文件夹. 复制别的文件夹的文件到当前位置file.copy()
.
a = dir("../pipeline/",pattern = "R$")[2:6] #提取需要复制的文件,dir()显示某个目录下有哪些文件,pattern = "R$"是显示以.R结尾的文件(代码)。
for (i in a) {
file.copy(paste0("../pipeline/",i),"./") # file.copy():复制文件
}
-
do.call()
函数将list扁平化,如do.call(rbind, ls)
行合并list元素中每一个. -
NA与null区别:
- NA表示数据集中该数据的遗失,对含有NA的数据集直接操作,NA不会被剔除. 如
x<-c(1,2,3,NA); mean(x)
返回NA。NA没有自己数据类型,会追随其他数据类型,如因为mode(x)='numeric'
,mode(x[4])
也是numeric. - NULL表示未知状态,不知道存不存在数据,运算时不会计算。如
x<-c(1,2,3,NULL), mean(x)=2
. NULL是不算数的,length(c(NULL))=0
但length(c(NA))=1
, 即NA占了位置.
- NA表示数据集中该数据的遗失,对含有NA的数据集直接操作,NA不会被剔除. 如
-
x[x%in%y]
与intersect(x,y)
区别:前者只查看,不去重; 后者会自动去重
r > x = c(1,3,5,1,3) > y = c(3,2,5,6,2) > x[x %in% y ] [1] 3 5 3 > # [1] 3 5 3 > intersect(x,y) [1] 3 5
-
match函数:向量匹配排序.
match(x,y)
依次返回x中每个元素在y中位置.y[match(x,y)]
以x作为模板,给y调顺序.> x <- c("A","B","C","D","E") > y <- c("B","D","E","A","C") > match(x,y) #依次返回x中每个元素在y中位置 [1] 4 1 5 2 3 > y[match(x,y)] # 将y按照x顺序排序 [1] "A" "B" "C" "D" "E" > x[match(y,x)] # 将x按照y顺序排序 [1] "B" "D" "E" "A" "C" > a <- data.frame(x,y,z=sample(100,5