矩阵转化成数据框
用as.data.frame(x)
数据框转化成矩阵比较麻烦,如果同时存在字符串类型和数值类型,那么就会默认将数值转化成字符串型,数据框无法转化成向量和因子
methods(as)函数查看所有as.函数
R中最基础的数值类型就是向量,向量可以转化成多类型的数据,例如给向量添加维度就能转化成矩阵或数组。
eg
向量转化成因子类型的数据
向量转化成列表
取数据框的子集,可以利用索引可以连续提取也可以非连续提取
连续x1 <- x[c(1:3),c(2:5)] 非连续x2 <- x[c(1,3,4),c(5,7,9)]
条件提取x <- x[which(x$列名==某个值),]注:别忘记加逗号,等式判断需要两个等号
还可以使用subset函数取子集,更方便些
在数据挖掘和机器学习领域从更大的数据集中抽样是很常见的方法,例如需要两个样本,一个样本用来建模,另一个样本用来验证模型,在R中可以使用sample进行随机抽样,方便设置样本的大小,无返回的抽样(每个数字只能出现一次)
举个栗子:
对向量进行抽样
对数据框进行取样用相同的代码,修改相应的数据框名称和replace=T or F代表有返回的抽样和无返回的抽样。
接下来学习如何删除固定行的数据:
最简单的方式使用负索引eg x[-1:-3,],逗号放后面删除对应的列,逗号放前面删除对应的行
第二种方法直接锁定行或列,通过名称,赋值为NULL
数据框的添加与合并:
例如数据集USArrests计量美国50个州四种犯罪率的指标
给数据框添加一列eg
也可以使用函数cbind添加一列,这样是直接合并,上面的方法是重新创建数据框的形式,合并行比较麻烦,必须要求列行名字相同否则rbind无法运行。若合并后有重复项,利用duplicated函数判断数据框或向量中哪些是重复值,返回的是逻辑值,利用索引取出eg x[!duplicated(x),]取出非重复部分。也可以直接使用unique函数直接取出非重复部分。
|
请发表评论