R语言怎么读入长短不一的数据

Python017

R语言怎么读入长短不一的数据,第1张

整数型在电脑里只能是4个字节啊 字节集的意思是自定长度的字节 无论你转换什么整数到字节集都是4个位的 所以你不能把其他长度的字节集转换成整数这个 欲读入数据的长度 其实你该看看你用的是什么命令你这个 读入字节集 的意思是在你加载的文件里读取你想要的长度的数据数据长度的单位是 多少多少 字节如果想把这个文件里的某一部分数据转换成整数型那就读你想要数据的4个位的字节 因为整数型就是4个位字节而读取位置是从上次读取的位置的尾部开始计算如果你是第一次读取那就是从最头开始读如果你想改变读取位置要用 移动读写位置() 这个命令所以基本上文件就是一大堆数据 然后读取之后每4个单位的数据能转换成整数

在R中尽量使用 <- 进行赋值, <- 更标准。在R中使用 = 进行赋值可能会出现错误(有些函数会将其解释为判断)——因为R起源于S语言,S语言的定义如此。

模式-使用mode()可以查看对象的数据类型

长度-使用length()可以查看对象的长度

标量可以是数字、字符、逻辑值等。

结果

向量可以由单个或多个值组成,多值的向量只能由相同类型的值组成,有一维和多维向量。

向量用于存储数值型、字符型、逻辑型数据

is.na()判断是否为缺失值,返回一个逻辑性向量

将自变量连接成一个字符串。

一般的使用形式是paste (..., sep = " ", collapse = NULL), ... 表示想要连接的不同自变量,sep表示不同自变量之间添加的符号,collapse打开之后表示将整个自变量变成一个单一的变量

对对象进行重复

在统计学中,按照变量值是否连续把变量分为连续变量与离散变量两种。分类变量是说明事物类别的一个名称,其取值是分类数据。变量值是定性的,表现为互不相容的类别或属性。因子就是一类分类离散变量。

因子是带有水平(level)的向量。

factor()函数一般形式为:

可以用来筛选因子的level

Table()函数对应的就是统计学中的列联表,是一种记录频数的方法。对于因子向量,可用函数table()来统计各类数据的频率。Table()的结果是一个带元素名的向量,元素名为因子水平,元素值为该水平的出现频率。

tapply()是对向量中的数据进行分组处理,而非对整体数据进行处理。函数一般形式为:

gl()函数可以方便地产生因子,函数一般形式为:

矩阵是一个二维数组,只是每个元素都拥有相同的数据类型(数值型、字符型或逻辑型)。注意与数据框的差别,数据框不同列的数据类型可以不同。

函数matrix ()是构造矩阵(二维数组)的函数,其构造形式为:

数组与矩阵类似,但是维度可以大于2。数组有一个特征属性叫做维数向量(dim属性),维数向量是一个元素取正整数值的向量,其长度是数组的维数,比如维数向量有两个元素时数组为二维数组(矩阵)。维数向量的每一个元素指定了该下标的上界,下标的下界总为1。

R软件可以用array()函数直接构造数组,其构造形式为:

数据框与矩阵类似,为二维,其数据框中各列的数据类型可以不同,但是长度必须一样。数据框在生物数据中用得比较多,是非常重要的一类数据类型。

数据框与矩阵不同的是数据框不同的列可以是不同的数据类型,并且数据框假定每列是一个变量,每行是一个观测值。

作为数据框变量的向量、因子或矩阵必须具有相同的长度(行数)。数据框可以用data.frame()函数生成,其用法与list()函数相同。

data.frame(col1,col2,col3.....)其中列向量col1,col2等可以是任何类型的向量

列表可以储存不同类型的数据,是一些对象的有序集合。它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型。元素本身允许是其他复杂数据类型。比如一个列表的元素也允许是一个列表。

R软件中利用函数list()构造列表,一般语法为:

Lst<-list(name_1=object_1,…, name_1=object_m)

其中name是列表元素的名称;object_i(i=1,…,m)是列表元素的对象。

unlist()函数:将list函数拉直成一个向量

语句很简单,只有一句

d1 <- do.call(cbind, lapply(lapply(d, unlist), length<- , max(lengths(d))))

lapply(x,fun),lapply接收两个值,x为向量或列表,fun是方法,这个函数的意思是将fun方法作用到x的每个元素,返回一个与x相同长度的列表

unlist函数接收一个列表,unlist将其简化为一个包含列表中所有原子成分的向量

外面嵌套的那层lapply函数,是将每个向量元素的长度设定为最长的那个长度,缺失值用NA补齐

cbind是按列合并向量,如果两列数量不一样会自动重复短的那列

do.call函数与lapply函数功能类似,但有一点不一样

lapply()为列表中的每个元素应用一个给定的函数,所以会有几个函数调用。

do.call()将给定的函数作为一个整体应用于列表,所以只有一个函数调用。

详细差别见 http://www.dovov.com/rlapplydo-call.html