设置工作目录
setwd("E:/生信星球 新手7天/Rdata") #灰常重要,将要处理的数据文件也放里面
R数据类型
vector, array, matrix, list, dataframe
向量 Vector
元素、标量、向量
元素(数字、"字符串")--> 标量(1个元素) --> 向量(多个有序元素)
变量赋值
> x <- c(1,2,3)
> x
[1] 1 2 3
> x <- c(1:10)
> x
[1] 1 2 3 4 5 6 7 8 9 10
> x <- seq(1,10,by = 0.5)
> x
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5
[11] 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10
> x <- rep(1:3,times = 2)
> x
[1] 1 2 3 1 2 3
从向量中提取元素
- 根据元素位置
> x <- seq(1,10,by = 0.5)
> x
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5
[11] 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0
> x[4] #第4个元素
[1] 2.5
> x[-4] #去掉第4个元素
[1] 1.0 1.5 2.0 3.0 3.5 4.0 4.5 5.0 5.5 6.0
[11] 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0
> x1 <- x[-4] #取值操作并不会改变x,可将上述向量赋值给新变量x1
> x
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5
[11] 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0
> x1
[1] 1.0 1.5 2.0 3.0 3.5 4.0 4.5 5.0 5.5 6.0
[11] 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0
> x[2:4]
[1] 1.5 2.0 2.5
> x[-(2:4)]
[1] 1.0 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0
[11] 7.5 8.0 8.5 9.0 9.5 10.0
> x[c(1,5)] #提取第1和第5个元素
[1] 1 3
- 根据值
> x <- seq(1,10,by = 0.5)
> x
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5
[11] 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0
> x[x==10]
[1] 10
> x[x<0] #这里有问题,不应该返回false吗?
numeric(0)
> x[x %in% c(1.5,2.5,5.5)] #存在于向量c(1.5,2.5,5.5)中的元素
[1] 1.5 2.5 5.5
> x[x %in% c(1.3,2.3,5.3)]
numeric(0) #上述问题解决。如果没有提取到元素,会返回数值0
数据框 dataframe
需将数据文件放置在工作目录下
1.读取本地数据框
> setwd("E:/生信星球 新手7天/Rdata")
> X <- read.csv("doudou.txt")
> X
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
> read.table(file="huahua.txt",sep=" ",header = T)
X1.X2
1 A\t1
2 B\t
3 C\t
4 D\t3
5 E\t
#介里好像不太对,tab转义字符为"\t"输入试试:
> a <- read.table(file="huahua.txt",sep="\t",header = T)
> a
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
#这时对了
付转义字符表(跟C++相同)
image.png
2.设置行列名
> colnames(X)
[1] "X1" "X2"
> rownames(X)
[1] "1" "2" "3" "4" "5"
> colnames(X)[1] <- "blabla"
> X
blabla X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
> #有公司返回数据时左上角第一格为空,R会自动补为x,可用此命令修改
> X <- read.csv(file = "huahua.txt",sep = "\t",header = T,row.names = 1)
> X
X2
A 1
B NA
C NA
D 3
E NA
3.变量保存及重新加载
save.image(file = "ioinfopanet.RData") #保存当前所有变量
save(X,file = ("X.RData")) #保存X变量
load("X.RData") #再次使用R时加载变量
经验:这里如果要保存Rscrip,感觉可以一开始就脚本框输入命令,控制台返回结果好些。避免命令结果都在控制台,不用到最后才复制粘贴,避免出错。
4.提取元素
> X[1,2] #提取X第1行第2列的元素
[1] 1
> X[2,] #提取X第2行向量
X1 X2
2 B NA
> X[,2]
[1] 1 NA NA 3 NA
> X[2] #也是第2列
X2
1 1
2 NA
3 NA
4 3
5 NA
> X[1:2] #第1列到第2列
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
> X[c(1)] #提取指定某一列
X1
1 A
2 B
3 C
4 D
5 E
> X$X2
[1] 1 NA NA 3 NA
help学看帮助文档
help("rep")
Examples
rep(1:4, 2)
rep(1:4, each = 2) # not the same.
rep(1:4, c(2,2,2,2)) # same as second.
rep(1:4, c(2,1,2,1))
rep(1:4, each = 2, len = 4) # first 4 only.
rep(1:4, each = 2, len = 10) # 8 integers plus two recycled 1's.
rep(1:4, each = 2, times = 3) # length 24, 3 complete replications
rep(1, 40*(1-.8)) # length 7 on most platforms
rep(1, 40*(1-.8)+1e-7) # better
## replicate a list
fred <- list(happy = 1:10, name = "squash")
rep(fred, 5)
# date-time objects
x <- .leap.seconds[1:3]
rep(x, 2)
rep(as.POSIXlt(x), rep(2, 3))
## named factor
x <- factor(LETTERS[1:4]); names(x) <- letters[1:4]
x
rep(x, 2)
rep(x, each = 2)
rep.int(x, 2) # no names
rep_len(x, 10)
网友评论