R语言初学者指南第三章
(2014-07-17 22:30:54)
标签:
r语言 |
分类: 生物信息 |
3章 3.1访问数据框变量
setwd("D:/RworkDir")
Squid<- read.table(file="squid.txt", header=TRUE)
names(Squid) #what are the varibale names?查看我们正在处理的变量的名称
str(Squid) #显示数据框中每个变量的属性
#数据框中的变量不能直接访问,比如上面我们建立的Squid数据框中的变量:Sample,Year等变量是不能直接访问的。那么该如何访问呢?有三种方法,1$,2data参数,3attach函数
#1.函数中的data参数
M1<- lm(GSI ~ factor(Location)+factor(Year), data=Squid)
#根据变量Location,Year做GSI的线性回归,lm是线性回归函数。#data=是表示在数据框Squid中可以找到数据。但是不是所有的函数都支持data参数。
#2.对于不支持data参数的函数,如何访问数据框中的变量呢?第一个方法是$符号,用法:数据框名$变量名
Squid$GSI #显示数据框Squid中的变量GSI
#第二种方法是选择相应的列,或者是行
Squid[, 6] #显示数据框Squid中的第六列,正好是GSI
#3.attach函数
attach(Squid) #把Squid添加到R的搜索路径里
GSI
#显示数据框中的GSI变量
#attach函数的缺点是一旦有相同名称的数据框或者变量,就会发生问题,因此在使用时要注意不使用attach(数据框名)两次,为确保不发生问题,使用attach后,及时使用detach(数据框名)从R的搜索路径中移除数据框。
#3.2访问数据子集即将全部数据中符合某些条件的数据筛选过滤出来
Squid$Sex #显示Sex变量
unique(Squid$Sex) #显示变量Sex中有多少个唯一值
#访问数据框Squid中的Sex变量为1的数据
SquidM<- Squid[Squid$Sex==1, ]
#Sex=1表示为雄性。因为我们要将性别为雄性的数据行取出存到SquidM变量中,所以方括号中Squid$Sex==1要放在都好之前。
SquidF<- Squid[Squid$Sex==2, ]
#访问数据框Squid中的Sex变量为2的数据,即雌性数据
SquidM
SquidF
#条件选择:基于第二个变量的值选择变量的过程。实际就是将布尔运算符“或,与,非”与访问子集结合起来
# |表示“或”,!表示“非”,&表示“与”
#提取Squid数据框中位置为1,2或者3的数据
Squid123<- Squid[Squid$Location==1 |Squid$Location==2
|Squid$Locatiion ==3, ]
Squid123<- Squid[Squid$Location!=4, ]
Squid123<- Squid[Squid$Location<4, ]
Squid123<- Squid[Squid$Location>=1 & Squid$Location
<=3, ]
#提取位置为1,性别为雌性的数据
SquidF.1<- Squid[Squid$Location==1 & Squid$Sex==2,
]
#提起性别为雄性,位置1或者2的数据
SquidM.12<- Squid[Squid$Sex==1&(Squid$Location==1 |
Squid$Location==2), ]
#排序 order函数,order(x) 按照变量x进行排列
Ord1<- order(Squid$Month) #按照月份进行排列
#3.3使用相同的标识符组合两个数据集merge(x,y,by="")
setwd("D:/RworkDir")
Sq1<- read.table(file="squid1.txt", header=TRUE)
Sq2<- read.table(file="squid2.txt", header=TRRE)
SquidMerged <- merge(Sq1, Sq2, by="Sample")
#merge命令采用两个数据框Sq1和Sq2作为参数并使用变量Sample作为相同的标识符合并两个数据
SquidMerged
SquidMerged <- merge(Sq1, Sq2, by="Sample", all=TRUE)
#all=TRUE表示如果有缺失行将用NA填充,FALSE则会忽略缺失值,缺省状态下all=FALSE
#3.4输出数据write.table(输出变量, file="保存文件名", sep=,
quote=,append=,na=)
sep=""数据用空格分开(也可以设置为其他符号),quete=FALSE消除字符串的引号标志,na=“NA”允许你指定缺失值由NA来代替,append=FALSE打开一个新的文件,如果为TRUE它将变量SuidM添加到一个已经存在的文件的尾部。
SquidM<- Squid[Squid$Sex==1, ]
write,table(SquidM, file="MaleSquid.txt", sep="",quote=FALSE,
append=FALSE, na="NA") #输出一个文件
#3.5重新编码分类变量
#习题3.1
setwd("D:/RworkDir")
BirdFlu2<- read.table(file="BirdFlu2.txt",
header=TRUE)
names(BirdFlu2)
[11] "X2007deaths" "X2008cases"
"X2008deaths"
str(BirdFlu2)
'data.frame': 15 obs. of
13 variables:
BirdFlu2$X2003cases
#查看2003年的病例数
[1] 3
sum(BirdFlu2$X2003cases)
#2003年总值
[1] 4
#习题3.2
ISIT<- read.table(file="ISIT.txt", header=TRUE)
names(ISIT)
[1] "SampleDepth" "Sources"
"Station"
"Latitude" "Longitude"
Station1<- ISIT$Station==1
#注意这里的Station1是一个布尔向量,不是数据框ISIT的子集
> Station1
[109] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[121] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[133] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[145] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[157] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[169] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[181] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[193] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[205] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[217] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[229] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[241] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[253] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[265] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[277] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[289] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[301] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[313] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[325] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[337] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[349] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[361] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[373] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[385] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[397] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[409] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[421] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[433] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[445] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[457] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[469] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[481] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[493] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[505] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[517] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[529] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[541] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[553] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[565] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[577] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[589] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[601] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[613] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[625] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[637] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[649] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[661] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[673] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[685] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[697] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[709] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[721] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[733] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[745] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[757] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[769] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE
[781] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE
rm(Station1)
> Station1
1
517 28.73
1
50.1508 -14.4792
2
582 27.90
1
50.1508 -14.4792
3
547 23.44
1
50.1508 -14.4792
4
614 18.33
1
50.1508 -14.4792
5
1068 12.38
1 50.1508
-14.4792
6
1005 11.23
1 50.1508
-14.4792
7
1036 11.06
1 50.1508
-14.4792
8
1100 10.57
1 50.1508
-14.4792
9
1490 8.92
1
50.1508 -14.4792
10
1520 7.26
1
50.1508 -14.4792
11
1550 6.60
1
50.1508 -14.4792
12
1587 6.44
1
50.1508 -14.4792
13
1972 4.29
1
50.1508 -14.4792
14
2003 3.80
1
50.1508 -14.4792
15
2034 3.63
1
50.1508 -14.4792
16
2068 2.81
1
50.1508 -14.4792
17
2444 2.48
1
50.1508 -14.4792
18
2504 1.98
1
50.1508 -14.4792
19
2477 1.32
1
50.1508 -14.4792
20
2536 1.32
1
50.1508 -14.4792
21
3722 0.83
1
50.1508 -14.4792
22
3446 0.66
1
50.1508 -14.4792
23
3630 0.66
1
50.1508 -14.4792
24
3660 0.66
1
50.1508 -14.4792
25
3939 0.66
1
50.1508 -14.4792
26
3414 0.50
1
50.1508 -14.4792
27
3505 0.50
1
50.1508 -14.4792
28
3534 0.50
1
50.1508 -14.4792
29
3912 0.50
1
50.1508 -14.4792
30
3568 0.33
1
50.1508 -14.4792
31
3600 0.33
1
50.1508 -14.4792
32
3697 0.33
1
50.1508 -14.4792
33
3853 0.33
1
50.1508 -14.4792
34
3880 0.33
1
50.1508 -14.4792
35
3474 0.17
1
50.1508 -14.4792
36
3789 0.17
1
50.1508 -14.4792
37
3758 0.00
1
50.1508 -14.4792
38
3818 0.00
1
50.1508 -14.4792
min(Station1$SampleDepth)
mean(Station1$SampleDepth)
median(Station1$SampleDepth) #中位数
max(Station1$SampleDepth)
unique(ISIT$Station)
Station2<- ISIT[ISIT$Station==2,]
#取出站点1的观察值
> Station2
Station3<- ISIT[ISIT$Station==3,]
#取出站点1的观察值
> Station3