R语言能识别多长的向量?

Python022

R语言能识别多长的向量?,第1张

运行后带+号,不是不识别长数据向量,而是表示换行的意思。文本编辑器里输入很长的向量时可以换行输入,新行必须前要加上+号。这样复制或导入R语言中都能正常运行。如图所示

32位R语言中矩阵或者向量的长度限制是4GB,如果电脑内存小于4GB,最长向量大小小于电脑内存;64位R语言中矩阵或者向量的长度限制就是电脑内存的容量。

If 32-bit R is run on most 64-bit versions of Windows the maximum value of obtainable memory is just under 4Gb.

向量是用于存储数值型、字符型或逻辑型数据的一维数组。向量只可以包含一种数据。在R中创建和操作向量很简便,下面的例子显示了如何用函数c() 或者冒号运算符来建立向量以及如何查询、修改、截取一部分向量。

在控制台中键入下列命令建立一个元素为字符串的向量并查询首元素:

键入下列命令建立一个元素为1、2、3、4、5的向量并计算向量元素之和:

创建一个新向量,元素包括2、4、6、8、10,并对其进行相关操作

如果想要初始化一个向量然后再添加内容,可以用vector()函数,vector()函数默认创建逻辑型向量。可以用mode参数指定向量类型。如果不知道向量中元素的个数,可以将个数设置为0,然后再将数据添加到向量末尾。

创建一个长度为3的逻辑型向量,未赋值元素默认为FALSE:

创建一个长度为3的数值型向量,查看元素类型并将3.1赋值于第二个元素:

语句很简单,只有一句

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