R语言Cook R数据-R语言-图表-决策-Linux-Python

R的知识迭代之基础操作

2018-12-10  本文已影响30人  刘小泽

刘小泽写于18.12.10

生信必备三大件:生物、统计、技术,我想要借助R来学习统计学知识,因为平时使用R比较频繁,理解起来应该也会更快一些。先来一次R的知识迭代,更新下知识库

先看一些比较基础的R操作

这其中有一些是我之前没有学习到的,第一次get感觉超级有用


了解下R的对象

对象属性

R运行都是靠对象,所有的对象都有两个内在属性:类型和长度

类型包括四种:数值型、字符型、复数型、逻辑型(T/F/NA),用函数mode()查看。另外不管什么类型的数据,缺失值都是用NA(Not Available)表示,不是数值用NaN(Not a Number)表示;

长度是对象中元素的数目,用length()查看

对象类别

只有数据框和列表支持多种对象并存;因子只有两种类型

向量是一个变量的取值;因子是一个分类变量;数组是一个k维的数据表;矩阵是数组的特例【数组或者矩阵的所有元素都是一种】;数据框是一个或几个向量/因子构成,并且它们必须等长,可以是不同的类型;列表可以包含任何类型的对象(也可以列表包含列表)

浏览对象

利用ls()可以查看当前在内存中的对象,但是这个函数只列出了对象名,并且是所有的;

想要查看名称中含有某个指定字符(如x)的对象,可以指定pattern:ls(pat = "x");

想要看以某个字母开头的对象,可以利用ls(pat = "^x") ;

如果想看所有对象的详细信息呢?ls.str()

删除对象


了解下R的向量

建立向量

数值型向量
字符型向量

注意引号在输入时应该写作:\"paste()可以连接多个参数成为字符串,其中如果有数值,那么数值会被强制转为字符串;默认空格分割各个字符,使用sep=自定义

逻辑型向量

TRUE、FALSE可以简写成T、F;如果转换为数值,FALSE为0,TRUE为1

因子型向量

利用factor()建立

factor(x, levels = sort(unique(x), na.last = TRUE),
         labels = levels, exclude = NA, ordered = is.ordered(x))

levels 指定因子水平(缺省值是向量x中不同的值);
labels 指定水平名称;
ordered是逻辑型选项,表示因子水平是否有顺序

> a <- c("x","y","z","x")
> a
[1] "x" "y" "z" "x"
> levels(a) <- c(1,2,3)
> a
[1] 1 2 3 1
Levels: 1 2 3

向量提取

这里简单说下根据逻辑值提取

# 例如x向量是这样的
> x <- c(20, 15, 11, 6)
> x>10 # 这个仅仅是判断,返回的也是F/T
[1]  TRUE  TRUE  TRUE FALSE
> x[x>10] # 提取大于10的元素
[1] 20 15 11
> x[ x < 15 & x > 10] # 限定多个提取条件
[1] 11

> y <- x[!is.na(x)] # 找到x中的非缺失值
> z <- x[(!is.na(x))&(x>0)] # 非负非缺失值

了解下R的矩阵 Matrix

相比于数组,矩阵使用频率更高,构建矩阵使用matrix

> x <- matrix(1:3, 2, 3) # 默认按列填充
> x
     [,1] [,2] [,3]
[1,]    1    3    2
[2,]    2    1    3
# 如果改成按行填充,将 byrow=TRUE就好

矩阵元素的替换

> x[,3] <- NA
> x
     [,1] [,2] [,3]
[1,]    1    3   NA
[2,]    2    1   NA
> x[is.na(x)] <- 1 # 缺失值用1代替
> x
     [,1] [,2] [,3]
[1,]    1    3    1
[2,]    2    1    1

矩阵统计运算

矩阵的排列是有方向性的,规定矩阵按列排列,一般不说明的时候,统计函数也是按列计算(但是可以用MARGIN来改变,等于1代表列,等于2代表行)

cov()cor()分别计算矩阵的协方差矩阵和相关系数阵;

可以进行标准化scale(x, center=T, scale=T)

按列求均值apply(x, MARGIN=2, FUN=mean)


了解下R的数据框 Data frame

虽然说数据框与矩阵很相似,也是二维表格,也是要求各个变量的观测值长度相等,但是,在数据框中,行和列的意义是不一样的, 其中列表示变量,行为观测

提取

添加


数据保存

一般用write.table()或者save()

数据读取

读取数据集

R内置的基本数据集有100多个(常为数据框和列表)。它们随R的启动全部一次性自动载入,通过命令data() 可以查看全部的数据集(也包含了通过library()加载的包中数据集);使用data(package = "pkname") 可以列出包pkname中的所有数据集,但是可能还未被加载,确定要用的时候可以加载包

读取Rdata

涉及多个数据集的分析时,最常使用load("/path/")


R的编程思维


欢迎关注我们的公众号~_~  
我们是两个农转生信的小硕,打造生信星球,想让它成为一个不拽术语、通俗易懂的生信知识平台。需要帮助或提出意见请后台留言或发送邮件到Bioplanet520@outlook.com

Welcome to our bioinfoplanet!
上一篇 下一篇

猜你喜欢

热点阅读