zl程序教程

您现在的位置是:首页 >  IT要闻

当前栏目

生信学习小组Day5笔记—Chocolate Ice

2023-02-25 18:19:06 时间

R语言的数据类型与对象类型

  • R的数据类型 主要有三种:
a = 1  #数字
b <- TRUE  #逻辑
b = "abc"  #字符串
  • R的对象类型 主要有六种
向量(vector)**
列表(list)
矩阵(matrix)
数组(array)
因子(factor)
数据框(data.frame)**

向量数据框是最重要最常用的两种对象类型。

图片来自https://www.runoob.com/r/r-data-types.html

向量

  • 概念解释: 元素:指的是数字或者逻辑或者字符串 标量:一个元素组成的变量 向量:多个元素有序排列组成的变量(元素的数据类型必须统一,要么全是数字,要么全是字符串)
图片来自微信公众号:生信星球
  • 从向量中提取元素 !!!提取子集的重要符号:[] (1)根据元素位置
x<-c(1:10) #x是一个由数字1到10组成的向量
x[4] #x第4个元素
x[-4]#排除法,除了第4个元素之外剩余的元素
x[2:4]#第2到4个元素
x[-(2:4)]#除了第2-4个元素
x[c(1,5)] #第1个和第5个元素

(2)根据值

x[x==10]#等于10的元素
x[x<0]
x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素

数据框

  • 概念解释:数据框:相当于excel表格,由行和列组成。行列之间的数据类型可以不一样(矩阵内的每个元素都必须是一样的数据类型)
  • 读取本地数据 在工作目录下新建文本文件(.txt),粘贴以下内容
X1  X2
A   1
B   2
C   4
D   3
E   7

尝试使用

read.table()以及read.csv()读取数据

小贴士:默认从工作目录内提取文件,所以最好把数据保存在工作目录下,方便数据提取

  • 设置行名列名
X<-read.csv('test.txt') #这里的变量X是一个数据框
colnames(X) #查看列名
rownames(X) #查看行名,默认值的行名就是行号,1.2.3.4...
colnames(X)[1]<-"name"#有的公司返回数据,左上角第一格为空,R会自动补为x,用这个命令来修改
X<-read.csv(file = "test.txt",sep = "	",header =T,row.names=1)
#最后row.names的意思是修改第一列为行名 
#header=T的意思是第一行为表头 
# sep="    "意思是指定字符的分隔符号为"    ",在输入的时候,原内容是用什么符号分隔的,sep就要保持一致,否则可能无法正确读取。
  • 数据框的导出
write.table(X,file = "yu.txt",sep = ",",quote=F)
#分隔符改为逗号,字符串不加双引号(默认格式带由双引号) 
  • 变量的保存与重新加载
save.image(file="nhanes.RData")#保存当前environmemt中所有变量
save(X,file="test.RData")#保存其中一个变量
load("test.RData")#再次使用RData时的加载命令
  • 从数据框中提取元素
- X[x,y]#第x行第y列
- X[x,]#第x行
- X[,y]#第y列
- X[y] #也是第y列
- X[a:b]#第a列到第b列
- X[c(a,b)]#第a列和第b列
- X$列名#也可以提取列(优秀写法,不过只能提取一列)

课后问题

请在作业中回答一个问题:save(X,file="test.RData")这句代码如果报错object X not found,是为什么,应该怎么解决?

报错原因:没有X这个变量,可能是本来没有新建X这个变量,也可能是变量名字打错了(比如大小写)

解决方法:在environment中找找是否有这个变量,核查变量名输入是否正确