当前位置: 首页 > 网络应用技术

R软件的哪个功能用于处理大数据集(2023年最新共享)

时间:2023-03-06 20:26:58 网络应用技术

  简介:今天,首席CTO注意与您分享R软件的哪些功能来处理大数据集的相关内容。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  “参考网站1”提到,如果只有整数操作(计算过程和结果仅用于整数),则无需使用“ double”(8个字节),但是较小的“整数”(4个字节)应该使用。使用storege.mode(x)查看对象存款的模式,storage.mode.mode(x)-s值;使用格式(object.size(a),单位='auto')查看对象所占据的内存空间(此处可用,每个整数在r中占用多少空间?)。

  您需要解释GC()函数以查看内存使用情况。相似地,清除大对象后,使用GC()释放内存空间。

  在“参考URL 2”中提到的li hang,即对于大型矩阵的操作,请尝试避免使用CBind和rbind,因为这将使内存无法分配空间。”对于长度的矩阵,请尝试定义大型矩阵首先,然后逐渐增加”和“注意清除中间物体”。

  使用BigMemory家族:BigMemory,BigAnalytics,同步,BigAbulate和Bigalgebra,同时

  Biglm。

  BigMemory软件包使用:

  1.建立一个大记忆对象

  BigMemory使用C ++数据格式来“模仿” R中的矩阵。

  编写大数据格式文件时,您可以首先建立文件返还。big.matrix

  

  

  as.big.matrix(x,type = null,selected = false,backingfile = null,backingpath = null,distriptorfile = null,sharone = true)

  注意:

  big.matrix使用两种存储数据的方法:一种是big.matrix的默认方法。如果内存空间相对较大,则可以尝试;另一个已文件返回。big.matrix.backings),并且需要描述符文件;

  “ init”是指矩阵的初始值。如果设置为设置,则设定值将提前填充在矩阵中;如果未设置,它将被处理为NA

  “类型”是指big.matrix中原子元素的存储格式。默认值为“双”(8个字节)。它可以更改为“整数”(4个字节),“短”(2个字节)或“ char”(1 Byte).Note:此软件包不支持字符串。type =“ char”是指ASCII代码。

  当big.matrix非常大时,请避免使用Rownames和Colnames(并且BigMemory禁止访问元素的名称),因为此方法非常占据内存。如果您必须更改,请使用选项(bigmemory.allow.dall.dabaly.dimnames = true)和然后在Colnames,Rownames中设置。

  在命令提示符之后输入x(x是一个大矩阵),它将返回x的描述,并且在所有内容中都不会有任何内容。因此,请注意x [,](打印了所有内容的所有内容矩阵);

  如果Big.matrix中有很多列,则应在存储后存储;(不推荐)或将参数“选择”设置为true,以便每列分开存储。否则,数据将存储在R的传统方法中。

  如果构建文件返回。作为;同样,随着big.matrix的更改,deripsfile变化;如果要维护更改,则需要重新建立更改。文件返还。.matrix。此功能易于使用,因为在创建文件返回后,每次创建文件后,保存R和退出后,先前创建的矩阵将消失。

  2.筛选big.matrix列的特定元素的条件

  内存没有限制;比传统(喜欢!)更灵活

  mwhich(x,cols,vals,comps,op ='and')

  x可以是大的。马trix或传统的R对象;

  科尔斯:线

  Vals:截止,您可以设置两个,例如C(1,2)

  comps:'eq'(==),'neq'(!=),'le'(),'lt'(=),'ge'()和'gt'(=)

  OP:“和”或“或”

  可以直接比较Na,Inf和-inf

  3. BigMemory中的其他功能

  nrow,ncol,dimnames,尾巴,头,类型,继承基本软件包

  big.matrix,is.big.matrix,as.big.matrix,arth.big.matrix,description,read.big.matrix,write.big.matrix,is.sub.banmatrix the unique big.matrix文件操作;filebacked.big.matrix,is.filebacked

  M the the Base软件包中的整体,Morder增强顺序,Mpermute(根据特定序列进行矩阵中的列,但它将更改原始对象。这是为了避免内存溢出)

  matrix对象的副本使用deepcopy(x,color = null,lows = null,y = null,type = null,selected = null,backingfile = null,backingpath = null)。

  BigAnalytics软件包使用

  BigAnalytics主要是一些基本功能的扩展。它主要包括最大,最小,道具,总和,范围,颜色,颜色,颜色,颜色,colors,colsd,colvar,摘要(仅适用于行或列。同时排名)

  更独特的是Bigkmeans集群

  其余的Biglm.big.matrix和Bigglm.big.matrix可以参考Lumley的BigLM包。

  BigTabulate软件包的使用

  并行计算限制中的突破:

  使用DOMC家族:DOMC,Dosnow,Dompi,Doredis,Dosmp和Foreach软件包。

  使用foreach包裹

  foreach(...,.combine,.init,.final = null,.inorder = true,.multicombine = false,.maxcombine = if(.mmulticombine)100 else 2,.errorhandling = c('stop','stop','emoce'','删除','pass'),.packages = null,.export = null,.noexport = null,.verbose = false)

  foreach的特征是平行计算,例如在网络空间和雪中?

  %do%严格执行任务(因此,不通过非合并计算计算),%dopar%执行并行执行任务

  ...:指定周期的数量;

  。

  .init:.combine函数的第一个变量

  .Final:返回最终结果

  。不需要结果的顺序。

  .Muticombine:设置.combine函数的传输参数。默认值是错误的,其参数为2,true可以设置多个参数

  .maxcombine:设置.combine的最大参数

  .Errorhandling:如果周期中存在错误,则处理错误的方法

  .packages:软件包(%do%会忽略此选项)取决于%dopar%的过程。

  GetDoparworkers():查看已注册了多少个核

  GetDoparregistered():查看Dopar是否已注册;如果没有注册,请返回false

  getDoparname():查看注册Dopar的名称

  GetDoparversion():查看Dopar的注册版本

  ========================================

  #foreach的循环可以指定多个变量,但只有最少的变量?

  foreach(a = 1:10,b = rep(10,3))%do%(a*b)

  [[1]

  [1] 10

  [[2]

  [1] 20

  [[3]

  [1] 30

  #.combine的foreach的“+”或“*”是cbind之后的操作;这就是说“表达式”返回一个向量,该向量将在向量+或*或*或*或*中可用。

  foreach(i = 1:4,.combine =“+”)%do%2

  [1] 8

  foreach(i = 1:4,.combine =“ rbind”)%do%rep(2,5)

  [,1] [,2] [,3] [,4] [,5]

  结果1 2 2 2 2 2 2 2

  结果2 2 2 2 2 2 2 2

  结果3 2 2 2 2 2 2 2

  结果4 2 2 2 2 2 2

  foreach(i = 1:4,.combine =“+”)%do%rep(2,5)

  [1] 8 8 8 8 8 8

  foreach(i = 1:4,.combine =“*”)%do%rep(2,5)

  [1] 16 16 16 16 16

  ==================================

  迭代器软件包的使用

  迭代器将为foreach提供循环变量。定义了每个迭代器。它设置了“周期的数量”和“每个循环的值”,因此非常适合组合使用foreach。

  iter(obj,...):您可以接受iTer,向量,矩阵,data.frame,函数。

  NextElem(OBJ,...):接受iTer对象并显示对象值。

  以矩阵为例

  iter(obj,by = c('colorn','cell','row'),块= 1L,checkfunc = fuund(...)true,recycle = false,...)

  作者:按周期顺序;矩阵和data.frame是默认的“行”,“单元格”是按顺序输出的(因此,对于“单元”,块size只能指定为默认值,即,1)

  块:每个执行函数NextElem之后,返回结果的长度基于By的设置。如果背面结构不够,则将剩下所有的剩余结构。

  checkfunc = function(...)true:执行函数checkFun,如果返回true,请返回;否则,跳过。

  回收:是否将设置设置为末端(“错误:停止”),即从一开始。

  以示例为例

  iter(function()rnorm(1)),可以重复使用NextElem;但是迭代(rnorm(1))只能出现。

  更有趣的是,如果对象是迭代,即test1 -iter(obj);test2-ITER(test1),然后将这两个对象连接在一起并同时更改。

  ====================================

  A

  [,1] [,2] [,3] [,4] [,5]

  [1,] 1 5 9 13 17

  [2,] 2 6 10 14 18 18

  [3,] 3 7 11 15 19

  [4,] 4 8 12 16 20

  i2 -iter(a,by =“ row”,块= 3)

  NextElem(i2)

  [,1] [,2] [,3] [,4] [,5]

  [1,] 1 5 9 13 17

  [2,] 2 6 10 14 18 18

  [3,] 3 7 11 15 19

  NextElem(i2)#第二次迭代后,只剩1行,全部返回

  [,1] [,2] [,3] [,4] [,5]

  [1,] 4 8 12 16 20

  i2 -iter(a,by =“ column”,checkfunc = function(x)sum(x)50)

  NextElem(i2)

  [,1]

  [1,] 13

  [2,] 14

  [3,] 15

  [4,] 16

  NextElem(i2)

  [,1]

  [1,] 17

  [2,] 18

  [3,] 19

  [4,] 20

  NextElem(i2)

  错误:停止

  船柱(a)

  [1] 10 26 42 58 74

  testfun -function(x){return(x+2)}

  i2 -iter(function()testfun(1))

  NextElem(i2)

  [1] 3

  NextElem(i2)

  [1] 3

  NextElem(i2)

  [1] 3

  i2-ITER(testfun(1))

  NextElem(i2)

  [1] 3

  NextElem(i2)

  错误:停止

  i2-ITER(testfun(1))

  i3 -ITER(I2)

  NextElem(i3)

  [1] 3

  NextElem(i2)

  错误:停止

  =================================

  迭代器包包括

  irnorm(...,count);irunif(...,count);irbinom(...,count);irnbinom(...,count);IRPOI(...,计数)工具生成的内部迭代器工具分别表明N元素是从正常,均匀,二项式,二项式,负二项式和泊松分布中随机选择的,以执行计数时间。负数分布,负二项式分布:概率质量质量函数是骰子。每个骰子的3点的概率为P。

  iCount(count)可以生成1:Conunt的迭代器;如果未指定计数,它将从无休止的1:INF生成

  ICOUNTN(VN)更有趣。VN是指数值向量(如果是十进制的数值,则将数量的数量取到后面,例如2.3 -3)。循环的数量是prod(VN)。每个返回向量中的每个元素从1开始,不超过设置VN。变化率从左到右增加。

  idiv(n,...,块,块)从1:n,“块”和“块”返回段的长度,不能同时指定。小的)

  iapply(x,边距):类似于申请,1是行的行,2是colorn

  iSplit(x,f,drop = false,...):根据指定的f分配矩阵

  ==================================

  I2 -ICOUNTN(C(3.4,1.2)))

  NextElem(i2)

  [1] 1 1

  NextElem(i2)

  [1] 2 1

  NextElem(i2)

  [1] 3 1

  NextElem(i2)

  [1] 4 1

  NextElem(i2)

  [1] 1 2

  NextElem(i2)

  [1] 2 2

  NextElem(i2)

  [1] 3 2

  NextElem(i2)

  [1] 4 2

  NextElem(i2)

  错误:停止

  我不知道您说的大桌子有多大,但是只要您可以将其加载到M语言内存,就可以计算出来。使用子集功能

  假设数据集为x

  A-Subset(X,A30)

  A-Subset(A,D50)

  子集的第一个参数是要筛选的数据集。第二个是条件。就像您说的问题一样,您可以根据第一步再次过滤它,也可以将其结合在一起。

  R是GNU的开源工具,GNU具有语言血统,并且擅长统计计算和统计图。大多数R语言爱好者可以使用强大的工具Rhadoop在大数据领域展示自己的脚,这无疑是一个R语言程序员的好消息。

  Rhadoop是Hadoop和R语言的组合,由Revolution Analytics开发,并向GitHub社区开源

  Noodle.rhadoop包括三个RMR(RMR,RHDFS,RHBASE),它们对应

  HBase三个部分。

  2)。Rhiverhive是一种由Nexr Korean Company开发的R语言直接访问Hive的工具包。

  3)。用R语言重新编织Mahout的实施也是思想的结合。我也做了相关的尝试。

  4)。hadoop呼叫r

  上面提到的所有呼叫Hadoop的方式。当然,我们还可以在相反的操作上进行操作,打开Java和R的连接通道,并让Hadoop Call R.How的功能,此部分中没有任何产品。

  5.实际上R和Hadoop的情况

  1. Hadoop的组合,技术阈值仍然有点高。对于一个人来说,不仅是Linux,Java,Hadoop,R的技术,还具有软件开发,算法,概率统计信息,线性代数,数据可视化,数据可视化,数据可视化,以及行业背景的一些基本品质。在公司部署这种环境中,它还需要多个部门和各种才能的合作。Hadoop运营和维护,Hadoop算法研究与发展,R语言建模,R语言

  MAPREDUCE,软件开发,测试等。因此,情况并不多。

  Rhadoop是Hadoop和R语言的组合。它是由RevolutionAnalytics和Github社区开发的。Rhadoop包含三个RMR(RMR,RHDFS,RHBASE),该RMR与三个部分相对应:MapReduce,HDFS,HBase。

  2)。Rhiverhive是一种由Nexr Korean Company开发的R语言直接访问Hive的工具包。

  3)。用R语言重新编织Mahout的实施也是思想的结合。我也做了相关的尝试。

  4)。hadoop呼叫r

  上面提到的所有呼叫Hadoop的方式。当然,我们还可以在相反的操作上进行操作,打开Java和R的连接通道,并让Hadoop Call R.How的功能,此部分中没有任何产品。

  5.实际上R和Hadoop的情况

  R和Hadoop的组合,技术阈值仍然有点高。对于一个人来说,不仅是Linux,Java,Hadoop,R的技术,而且还拥有它

  软件开发,算法,概率统计,线性代数,数据可视化,行业背景

  在公司部署这种环境中,它还需要多个部门和各种才能的合作。

  MAPREDUCE,软件开发,测试等。

  使用R语言时,如果是少量数据,则可以使用C()或其他功能来创建;但是对于大量数据,最好先通过其他更方便的软件创建数据文件,然后使用R读取此文件。

  .CSV是一种不错的数据文件格式,跨平台支持非常好。我在Excel或SPSS中创建的数据,只要它以CSV格式存储,我几乎可以使用任何数据处理软件来处理这些数据。使用常见行为中的普通格式,例如多人合作和不同版本,优势非常明显。此外,其他原因是使用不同的数据处理软件来处理软件的原因,首先,它可以利用它。例如,某些工作SPS非常复杂,您可以使用R语言线来获取它。第二,可以处理和找到软件的结果。

  在R语言中读取外部文件的最基本功能是read.table(),以及用于读取CSV的read.csv()。.CSV是一种非常好的数据文件格式。交叉平台支持非常好。

  输入help(read.table)命令,您可以查看数据输入函数的说明。

  澄清概念:Explorest数据分析(EDA),一般过程是:

  (1)询问数据。

  (2)数据的可视化,转换和建模,然后找到问题的答案。

  (3)使用上一步的结果来完善问题并提出新问题。

  确定该变量是分类变量还是连续变量。如果要检查分类变量的分布,可以使用条形图:

  条带的高度表示每个X值中的观测值。您可以使用dplyr :: count()手动计算这些值:

  如果要检查连续变量的分布,可以使用直方图:

  您可以通过组合DPLYR :: count()和ggplot2 :: cut_width()的组合来手动计算结果。设置的Binwidth参数设置为在直方图中设置间隔的宽度。

  在同一图上叠加多个直方图,使用geom_freqpoyploy()而不是geom_histogram(),然后使用折叠行。

  相似值形成的群集表明数据中有一个子组。

  有一个Xlim()参数用于放大coord_cartesian()函数中的x轴。在ggplot2中也有函数。

  其他Xlim()和Ylim()函数:它们将忽略坐标轴范围的数据。

  如果分析具有异常值和没有异常值的数据的分析,则结果是不同的。如果差异不大,则可以用Na替换。

  5.3.4锻炼

  (1)研究钻石数据浓度中X,Y和Z变量的分布。您可以找到什么?考虑一下

  钻石数据,如何确定指示长度,宽度和高度的变量?

  (2)研究价格的分配,您能发现异常或令人惊讶的事情吗?(提示:仔细考虑

  binwidth参数并确定有足够的值。)

  (3)0.99克拉多少钻石?1克拉钻石是多少?这种差异的原因是什么?

  (4)比较并比较coord_cartesina()和xlim()/ylim()的功能。

  Binwidth参数会发生什么?如果直方图仅显示条带的一半,则将再次发送

  发生了什么?

  数据中有异常值,可以消除异常值:

  通常不建议将其删除。建议使用缺失值而不是异常值。

  IFLSE函数参数1用于逻辑判断。如果是t,则结果是第二个参数的值。如果是f,则是第三参数的值。

  GGPLOT2将忽略缺失的值:

  实践

  (1)如何处理直方图的缺失值?如何处理价值损失?为什么会有如此差异?

  (2)na.rm = true在平均值()和sum()函数中的作用是什么?

  在执行统计数据之前删除缺失的值

  根据分组变量显示连续变量分布的另一种方法是使用框线图

  实践

  (1)取消航班的出发时间和未解决的飞行时间。

  改善结果。

  (2)在钻石数据浓度中,哪个变量对于预测钻石的价格最重要?该变量和切割质量之间的关系是

  怎么样?为什么这两个变量关系会导致质量较差的钻石价格更高?

  (3)安装GGSTANCE软件包并创建水平盒线。此方法与使用COORD_FLIP()函数有何不同?

  (4)框图存在的问题是,在小数据集的时代,大数据集会的数量显示了极端

  它巨大的异常价值。解决此问题的一种方法是使用字母值图。安装LVPLOT包并尝试

  使用GEOM_LV()函数来显示基于切割质量的切割的分布。您会发现什么问题?如何解释这一点

  植物图形?

  (5)比较并比较geom_violin(),geom_histogram()和颜色geom_freqpoyploy()。每种方法的优点和缺点是什么?

  (6)对于小数据集,如果您想观察连续变量和分类变量之间的关系,有时GEOM_ITTER()函数特别有用。GGBEESWARM软件包提供了类似于Geom_jitter()的方法。这些方法。这些方法。

  并简单地描述每种方法的作用。

  必须先计数两个分类变量之间的关系,并且可以使用geom_count()函数

  D3 -HeatMap或Heatmaply包装可以具有交易互动图

  实践

  (1)如何调整计数数据,以便更清楚地表示颜色之间的切割质量的分布或切割颜色

  切割质量的分布?

  (2)使用GEOM_TILE()函数探索平均飞行延迟如何探索平均飞行延迟。

  改变和改变。为什么这张图片很难阅读?如何改进?

  (3)为什么在上面的示例中AES(x =颜色,y = cut)比AES更好(x = cut,y =颜色)?

  连续变量之间的关系通常由分散的点表示。Geom_point()

  对于大数据集,为了避免重叠,您可以使用geom_bin2d()和geom_hex()函数将坐标平面划分为两维部门,并使用填充颜色

  每个水箱的数据点。

  另一种方法是将一个连续变量划分,因此该连续变量的作用相当于分类变量。

  cut_width(x,width)函数将x变量划分为宽度的一部分。参数varwidth = true使框图的宽度与观测值成正比。

  cut_number()函数几乎显示了每个框中的数据点数

  实践

  (1)除了使用框线图总结条件分布外,您还可以使用频率多边形图。

  当width()函数或cut_number()函数时,您需要考虑哪些问题?这对克拉和Price的两个维点

  衣服可视化的影响是什么?

  (2)根据价格分类可视化克拉的分布。

  (3)相对较大的钻石和较小的钻石的价格分布。结果满足期望吗?这是出乎意料的吗?

  (4)组合使用了您学到的两种技术来可视化剪切,克拉和价格的组合分布。

  (5)两个维图可以显示在一个维度上看不到的不见点。例如,下图中的某些点具有异常

  x值和y值的组合使这些点成为组点,即使分别检查这些点的x值和y值

  看起来正常。

  GGPLOT(数据=钻石) +

  geom_point(映射= aes(x = x,y = y)) +

  coord_cartesian(xlim = c(4,11),ylim = c(4,11))

  数据中的模式提供了一个关系线索,以探索两个变量的相关性。

  模型是从数据中提取模式的工具。

  残留(预测和实际值之间的差异)

  阅读建议:

  Shengxin技能树公共福利视频汇编:学习顺序是Linux,R,软件安装,GEO,TIPS,NGS Group!

  电台B链接:

  YouTube链接:

  Shengxin工程师入门的最佳指南:

  结论:以上是首席CTO的全部内容指出,用于大数据集使用哪种功能R软件。感谢您阅读本网站的内容。我希望这对您有帮助。不要忘记找到大数据集的相关内容。