加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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)
 [1] "country"     "X2003cases"  "X2003deaths" "X2004cases"  "X2004deaths"
 [6] "X2005cases"  "X2005deaths" "X2006cases"  "X2006deaths" "X2007cases"
[11] "X2007deaths" "X2008cases"  "X2008deaths"
str(BirdFlu2)
'data.frame':   15 obs. of  13 variables:
 $ country    : Factor w/ 15 levels "Azerbaijan","Bangladesh",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ X2003cases : int  0 0 0 1 0 0 0 0 0 0 ...
 $ X2003deaths: int  0 0 0 1 0 0 0 0 0 0 ...
 $ X2004cases : int  0 0 0 0 0 0 0 0 0 0 ...
 $ X2004deaths: int  0 0 0 0 0 0 0 0 0 0 ...
 $ X2005cases : int  0 0 4 8 0 0 20 0 0 0 ...
 $ X2005deaths: int  0 0 4 5 0 0 13 0 0 0 ...
 $ X2006cases : int  8 0 2 13 1 18 55 3 0 0 ...
 $ X2006deaths: int  5 0 2 8 0 10 45 2 0 0 ...
 $ X2007cases : int  0 0 1 5 0 25 42 0 2 1 ...
 $ X2007deaths: int  0 0 1 3 0 9 37 0 2 0 ...
 $ X2008cases : int  0 1 0 3 0 7 18 0 0 0 ...
 $ X2008deaths: int  0 0 0 3 0 3 15 0 0 0 ...
BirdFlu2$X2003cases          #查看2003年的病例数
 [1] 0 0 0 1 0 0 0 0 0 0 0 0 0 0 3

 BirdFlu2$X2005cases          #查看2005年的病例数
 [1]  0  0  4  8  0  0 20  0  0  0  0  0  5  0 61
  BirdFlu20032005<- BirdFlu2$X2003cases + BirdFlu2$X2005cases
  > BirdFlu20032005           #查看两年之和 
 [1]  0  0  4  9  0  0 20  0  0  0  0  0  5  0 64
 max(BirdFlu2$X2003cases)      #最大值 
[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
  [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
 [13]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
 [25]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
 [37]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [49] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [61] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [73] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [85] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [97] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[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<- ISIT[ISIT$Station==1,]  #取出站点1的观察值
> Station1
   SampleDepth Sources Station Latitude Longitude
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

0

阅读 收藏 喜欢 打印举报/Report
前一篇:猫城
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有