R语言笔记丨数据的创建和转换

简介: R语言笔记丨数据的创建和转换

今天的笔记内容是R语言中数据创建、随机自动生成、查看、转化相关基础知识。包括cbind、rbind、rnorm、runif、rep、dim、apply、str等的用法。

R语言数据处理基础笔记

创建数据

  • 正态分布
    随机正态分布数据可以用rnorm函数生成,下面生成8个随机数值,平均值为1,标准差为2
> rnorm(8,mean=1,sd=2)
[1]  1.2431291  1.9648432 -2.4450025 -0.7330347
[5]  3.2119733  2.3628804  0.7375560  4.6286765
  • 均匀分布
    利用runif函数生成4个随机数,服从最小值为3,最大值为5的均匀分布。
> runif(4,min = 3,max = 5)
[1] 3.627561 4.834160 4.783988 3.289960
  • 生成重复值
    rep函数生成重复值,下面为将1重复3次。
> rep(1,3)
[1] 1 1 1

一个简单实例数据

R语言中1:20表示生成从1到20的数字内容,dim表示数据框的维度。下面生成一个五行四列的矩阵。

> a <- 1:20
> dim(a) <- c(5,4) #设置a为5行4列
> a
     [,1] [,2] [,3] [,4]
[1,]    1    6   11   16
[2,]    2    7   12   17
[3,]    3    8   13   18
[4,]    4    9   14   19
[5,]    5   10   15   20

letters表示从a依次生成小写字母,LETTERS表示依次生成大写字母,利用colnamesrownames对矩阵的列名和行名进行修改。

> colnames(a) <- letters[1:4] #列名
> a
     a  b  c  d
[1,] 1  6 11 16
[2,] 2  7 12 17
[3,] 3  8 13 18
[4,] 4  9 14 19
[5,] 5 10 15 20
> rownames(a) <- LETTERS[1:5] #行名
> a
  a  b  c  d
A 1  6 11 16
B 2  7 12 17
C 3  8 13 18
D 4  9 14 19
E 5 10 15 20

查看刚刚创建数据的最大值、最小值、行数、列数

> max(a)
[1] 20
> min(a)
[1] 1
> nrow(a) #行数
[1] 5
> ncol(a) #列数
[1] 4

apply表示对数据按每一行(1)或者每一列(2)进行操作,计算每一列的方差、中值偏差、均值

> apply(a,1,var) #对a的每一行计算方差
[1] 41.66667 41.66667 41.66667 41.66667 41.66667
> apply(a,1,mad) #对a的每一行计算中值差
[1] 7.413 7.413 7.413 7.413 7.413
> apply(a,2,mean) #对a的每一列计算平均值
[1]  3  8 13 18

对矩阵进行转置操作:

> expr = t(a) #t()表示转置
> expr
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    6    7    8    9   10
[3,]   11   12   13   14   15
[4,]   16   17   18   19   20
> str(expr) #str函数是非常好的查看数据工具哈哈哈哈
 int [1:4, 1:5] 1 6 11 16 2 7 12 17 3 8 ...

数据类型和转换

刚刚创建的数据为矩阵(matrix)格式,可以使用is.matrix(a)来检测。

> is.matrix(a)
[1] TRUE
> is.vector(a)
[1] FALSE #不是向量,所以显示FALSE

如果想把矩阵转化为数据框data.frame,只需要使用as.data.frame()命令。

> is.data.frame(a)
[1] FALSE
> is.data.frame(as.data.frame(a))
[1] TRUE

数据的合并与组合

在Linux中有pastecat命令能对表格(矩阵)按照行或者列进行合并(点击这里跳转阅读),R语言中也有类似的命令cbindrbind,接下来首先创建两个2×2的矩阵。

> a <- matrix(1:4,2,2)
> a
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> b <- matrix(5:8,2,2)
> b
     [,1] [,2]
[1,]    5    7
[2,]    6    8

使用cbind将两部分数据按列合并,即左右两坨横着拼起来。

> cbind(a,b)
     [,1] [,2] [,3] [,4]
[1,]    1    3    5    7
[2,]    2    4    6    8

使用rbind按照行进行合并,即上下两部分合在一起。

> rbind(a,b)
     [,1] [,2]
[1,]    1    3
[2,]    2    4
[3,]    5    7
[4,]    6    8

数据的中心化和标准化

数据分析时,不同数据有不同的特征和衡量差异,需要对数值进行中心化(数据减去均值得到)和标准化(在中心化后除以标准差)。

R语言中实用scale函数直接完成上述步骤,比如对1,2,3三个数进行处理,得到如下结果。

> scale(1:3)
     [,1]
[1,]   -1
[2,]    0
[3,]    1
attr(,"scaled:center")
[1] 2
attr(,"scaled:scale")
[1] 1
参考资料:
http://www.ehbio.com/Bioinfo_R_course/Rbasic.html#R_version
https://blog.csdn.net/qq_27586341/article/details/91365165


END

© 素材来源于网络,侵权请联系后台删除

往期推荐:

软件丨MobaXterm远程登录工具

软件丨个人电脑搭建Linux虚拟机

文献丨转录组RNA seq——青年阶段!

文献丨转录组表达数据的生信挖掘研究

R语言笔记丨字符串和列表必学基础知识

R语言笔记丨三大法宝:判断、循环、函数

相关文章
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
4月前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
|
3月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
3月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
4月前
|
数据采集 机器学习/深度学习 数据挖掘
R语言数据清洗:高效处理缺失值与重复数据的策略
【8月更文挑战第29天】处理缺失值和重复数据是数据清洗中的基础而重要的步骤。在R语言中,我们拥有多种工具和方法来有效地应对这些问题。通过识别、删除或插补缺失值,以及删除重复数据,我们可以提高数据集的质量和可靠性,为后续的数据分析和建模工作打下坚实的基础。 需要注意的是,处理缺失值和重复数据时,我们应根据实际情况和数据特性选择合适的方法,并在处理过程中保持谨慎,以避免引入新的偏差或错误。
|
4月前
|
数据处理
R语言数据合并:掌握`merge`与`dplyr`中`join`的巧妙技巧
【8月更文挑战第29天】如果你已经在使用`dplyr`进行数据处理,那么推荐使用`dplyr::join`进行数据合并,因为它与`dplyr`的其他函数(如`filter()`、`select()`、`mutate()`等)无缝集成,能够提供更加流畅和一致的数据处理体验。如果你的代码中尚未使用`dplyr`,但想要尝试,那么`dplyr::join`将是一个很好的起点。
|
4月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
4月前
|
SQL 数据挖掘 数据处理
R语言数据操作:使用dplyr进行数据处理的深度探索
【8月更文挑战第27天】`dplyr`包以其简洁、强大的数据处理能力,在R语言的数据分析领域占据了重要地位。通过`select()`、`filter()`、`arrange()`、`mutate()`和`summarise()`等核心函数,结合管道操作符`%>%`,我们可以轻松地完成数据筛选、排序、变换和汇总等操作。掌握`dplyr`的使用,将极大地提高我们在R语言中进行
|
7月前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
|
7月前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)

相关实验场景

更多