R笔记之《R语言之书-编程与统计》第一部分 语言(2)

前一篇记录了第一部分前4章的内容,接下来是5~8章的内容。这两天做笔记发现一个很好的点是,在自己看完一遍书,又在电脑上做记录再看一遍书,这样反反复复的看书和思考可以很快的去理解知识点。好记性不如烂笔头,何况在互联网时代,可以敲键盘来记录自己所看到的,真的是一个不错的方法。

  • 列表和数据框
  • 特殊值、类型和转换
  • 基本绘图
  • 读写文件

列表和数据框

列表可以包含数值型矩阵、逻辑型数组,字符串和因子变量,也可以包含其他列表。
创建列表、输出列表长度、提取列表中组件。例如:

> foo <- list(matrix(data=1:4,nrow=2,ncol=2),c(T,F,T,T),"hello")
> foo                   #创建了一个矩阵,逻辑向量,字符串
[[1]]
     [,1] [,2]
[1,]    1    3
[2,]    2    4

[[2]]
[1]  TRUE FALSE  TRUE  TRUE

[[3]]
[1] "hello"

> length(x=foo)
[1] 3                       #length函数检查列表中有几个组件

> foo[[1]]
     [,1] [,2]
[1,]    1    3
[2,]    2    4

> foo[[3]]
[1] "hello"              #用索引和中括号提取列表组件

names函数给列表中的元素命名。

> names(foo) <- c("mymatrix","mylogicals","mystring")
> foo                           #按顺序命名为这几个名称
$mymatrix
     [,1] [,2]
[1,]    1    3
[2,]    2    4

$mylogicals
[1]  TRUE FALSE  TRUE  TRUE

$mystring
[1] "hello"

数据框是使用data.frame函数来创建,以长度相等的向量形式提供数据。例如:

> mydata <- data.frame(person=c("Peter","Lois","Meg","Chris","Stewie"),age=c(42,40,17,14,1),sex=factor(c("M","F","F","M","M")))
> mydata
  person age sex
1  Peter  42   M
2   Lois  40   F
3    Meg  17   F
4  Chris  14   M
5 Stewie   1   M     
#创建了一个包含 person、age、sex的数据框

> mydata[2,2]
[1] 40                   #用中括号提取2行2列的元素

> mydata$age
[1] 42 40 17 14  1     
> mydata$age[2]
[1] 40                            #使用$符号也可以提取数据

使用stringsAsFactors=FALSE避免系统默认将字符串转换成因素

> mydata <- data.frame(person=c("Peter","Lois","Meg","Chris","Stewie"),age=c(42,40,17,14,1),sex=factor(c("M","F","F","M","M")),stringsAsFactors=FALSE)
> mydata
  person age sex
1  Peter  42   M
2   Lois  40   F
3    Meg  17   F
4  Chris  14   M
5 Stewie   1   M
> mydata$person
[1] "Peter"  "Lois"   "Meg"    "Chris"  "Stewie"      #person是字符串

可以使用rbind、cbind添加合并数据、也可以利用逻辑值提取数据

特殊值、类型和转换

无穷数用Inf 表示,因为是无穷数是数值型数据,所以Inf 只能与数值型向量相关,-Inf表示负无穷。

> foo <- Inf       #定义了单个无穷数对象
> foo
[1] Inf
> bar <- c(3401,Inf,3.1,-555,Inf,43)       #含有无穷数的数值型向量
> bar
[1] 3401.0    Inf    3.1 -555.0    Inf   43.0
> baz <- 90000^100          #无穷数
> baz
[1] Inf

NaN表示非数值,至于数值型观测值相关联,指一些计算的非预期结果,用is.nan函数检测是否存在NaN值。
NA值 是缺失值,即Not Available,NA值可以用于任何类型的数据,,用函数is.na来识别缺失值,na.omit函数删除所有NA值。
NULL是空值,is.null来检查元素是否为空值。

attributes函数输出任何对象的属性,用class函数提取特定属性,is.函数检查对象是特定的类别还是数据类型,其返回结果是逻辑值。用as.函数转换数据原有类型。

基本绘图

plot函数绘图,例如:

> foo <- c(1.1,2,3.5,3.9,4.2)
> bar <- c(2,2.2,-1.3,0,0.2)
> plot(foo,bar,type="b",main="My lovely plot",xlab="",ylab="",col=4,pch=8,lty=2,cex=2.3,lwd=3.3)   
#type 图的形式,main 标题,xlab,ylab 横纵坐标,col 颜色,pch 点的特征,lty线的类型,lwd线的宽度,cex点的大小
> plot(foo,bar,type="b",main="My lovely plot",xlab="",ylab="",col=6,pch=15,lty=3,cex=0.7,lwd=2)

用ggplot2包绘图,在后续会更详细的介绍。

读写文件

install.packages() 安装程序包,library函数加载程序包
使用read.table导入表格格式的文件,例如:

> mydatafile <- read.table(file="D:/R语言之书资源/8.2.1_mydatafile.txt",header=TRUE,sep=" ",na.strings="*",stringsAsFactors=FALSE)
#file 是文件名和文件位置的字符串,使用斜杠/,header是否使用表头,sep表示分隔符的字符串,na.strings表示缺失值的字符串,
> mydatafile
  person age sex funny age.mon
1  Peter  NA   M  High     504
2   Lois  40   F  <NA>     480
3    Meg  17   F   Low     204
4  Chris  14   M   Med     168
5 Stewie   1   M  High      NA
6  Brian  NA   M   Med      NA

使用file.choose()命令来查找文件
使用read.table、read.csv命令来导入office表格,首先要转换表格的格式,先在Excel中转换,再导入R中

> spread <- read.csv(file="D:\\R语言之书资源\\8.2.2_spreadsheetfile.csv",header=FALSE,stringsAsFactors=TRUE)
> spread
   V1  V2     V3
1  55 161 female
2  85 185   male
3  75 174   male
4  42 154 female
5  93 188   male
6  63 178   male
7  58 170 female
8  75 167   male
9  89 181   male
10 67 178 female

也可以读取网页中的数据,也可以使用R包forein读取统计软件中的数据文件。
写出文件用write.table,write.csv

入门生信最快方式请搜索生信技能树

  1. 生信技能树全球公益巡讲
    https://mp.weixin.qq.com/s/E9ykuIbc-2Ja9HOY0bn_6g
  2. B站公益74小时生信工程师教学视频合辑https://mp.weixin.qq.com/s/IyFK7l_WBAiUgqQi8O7Hxw
  3. 招学徒
    https://mp.weixin.qq.com/s/KgbilzXnFjbKKunuw7NVfw
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容