美文网首页R
R 数据结构

R 数据结构

作者: 一路向前_莫问前程_前程似锦 | 来源:发表于2019-08-20 17:29 被阅读0次
    向量包括原子向量和列表,原子向量的所有元素必须具有相同的类型,所以当把不同的数据结合在一起形成向量时,它们就会被强制转换(转换顺序为由低到高转换,强制转换经常是自动进行的)。

    数据类型灵活性由低到高的排列顺序为:

    逻辑性<整形<双精度型<字符型

    eg:字符型和整形便会组成字符型


    image.png
    列表的元素可以是任意类型,甚至包括列表,使用list()来构建
    image.png

    列表有时称为递归向量,因为一个列表可以包含其他列表,这使其从根本上不同于原子向量。

    image.png

    c()可以把多个列表合并成一个列表。如果原子向量和列表结合在一起,c()会强制将向量转成列表,然后在将他们结合在一起。

    image.png
    image.png
    再调用read.csv()函数时,对na.strings参数进行设置通常是个好办法

    因子型转为数值型:先转为字符型,再转为数值型
    因子型虽然看上去很像字符型向量,但它其实是整形。

    read.csv("xxx.csv",na.strings=".")

    image.png
    data.frame构建

    data.frame属于S3类,所以他的类型反映了构建它的基础向量:列表。
    可以使用data.frame来构建数据框,但是data.frame()的默认行为会把字符串转换为因子,使用参数stringAsFactors=F来禁止这种转换

    当进行行列向合并时,两个数据框的行数必须保持一致,行的名字可以忽略,当进行行行合并的时候,列的名字和列数都必须一致。如果两个数据框没有相同的列,可以使用plyr:rbind.fill()进行合并.
    经常以为使用cbind可以将向量合并到一起来创建数据框,这是错误的,因为cbind创建的是一个矩阵,除非其中有一个参数本身就是数据框

    特殊列

    由于数据框是一个向量列表,所以数据框也可能有一列是由列表组成的:


    image.png

    但是当对列表使用data.frame(),它会将列表中的每个元素放在自己的列中,所以便会报错。使用I()便可以避免这个错误,它会使data.frame() 把列表看作一个单元(但是行数必须一致)。

    image.png

    同样数据框中的某一列也可以是矩阵或者数组,只要函数一致。


    image.png

    相关文章

      网友评论

        本文标题:R 数据结构

        本文链接:https://www.haomeiwen.com/subject/skbpsctx.html