• R语言数据类型


    当编写任何编程语言程序,需要使用不同的变量来存储各种信息。变量不过是用于保留存储器位置的存储值。这意味着,当创建一个变量,它会保留在内存中的一些空间。

    你可能喜欢存储诸如字符以外的数据类型,如:宽字符,整型,浮点型,双浮点型,布尔等信息。基于变量的数据类型,操作系统分配内存,并决定什么可以存储在存储器。

    在其他编程语言中,如C和Java R中的变量没有声明为某些数据类型。变量分配R-对象和R对象的数据类型变为变量的数据类型。有许多类型的R-对象。常用的有:

    • 矢量,列表,矩阵,数组,因子,数据帧

    这些对象的是最简单的矢量对象并且这些原子矢量有六种数据类型,也被称为六类向量。另外R-对象是建立在原子向量。

    数据类型示例验证
    逻辑 TRUE , FALSE
    v <- TRUE print(class(v))
    它产生以下结果:
    [1] "logical" 
    
    数字 12.3, 5, 999
    v <- 23.5 print(class(v))
    它产生以下结果:
    [1] "numeric"
    
    整数 2L, 34L, 0L
    v <- 2L print(class(v))
    它产生以下结果:
    [1] "integer"
    
    复数 3 + 2i
    v <- 2+5i print(class(v))
    它产生以下结果:
    [1] "complex"
    
    字符 'a' , '"good", "TRUE", '23.4'
    v <- "TRUE" print(class(v))
    它产生以下结果:
    [1] "character"
    
    原始 "Hello" 将被存储为 48 65 6c 6c 6f
    v <- charToRaw("Hello") print(class(v))
    它产生以下结果:
    [1] "raw" 
    

    因此,在R语言中的非常基本的数据类型是R-对象,如上图所示占据着不同类别的元素向量。请注意R语言中类的数量并不只限于上述的六种类型。 例如,我们可以使用许多原子向量以及创建一个数组,它的类将成为数组。

    向量(一维数组)

    当您希望使用多个元素创建向量,应该使用c()函数,这意味着元素结合成一个向量。

    # Create a vector.
    apple <- c('red','green',"yellow")
    print(apple)
    
    # Get the class of the vector.
    print(class(apple))

    当我们上面的代码执行时,它产生以下结果:

    [1] "red"    "green"  "yellow"
    [1] "character" 

    列表 (相当于集合类)

    列表是R-对象,list()函数它里面可以包含多个不同类型的元素,如向量,函数,甚至是另一个列表。

    # Create a list.
    list1 <- list(c(2,5,3),21.3,sin)
    
    # Print the list.
    print(list1)

    当我们上面的代码执行时,它产生以下结果:

    [[1]]
    [1] 2 5 3
    
    [[2]]
    [1] 21.3
    
    [[3]]
    function (x)  .Primitive("sin") 

    矩阵(牛逼的二维数组)

    矩阵是一个二维矩形数据集。它可以使用一个向量输入到矩阵函数来创建。

    # Create a matrix.
    M = matrix( c('a','a','b','c','b','a'), nrow=2,ncol=3,byrow = TRUE)
    print(M)

    当我们上面的代码执行时,它产生以下结果:

         [,1] [,2] [,3]
    [1,] "a"  "a"  "b" 
    [2,] "c"  "b"  "a"  

    数组

    尽管矩阵限于两个维度,数组可以是任何数目的尺寸大小。数组函数使用它创建维度的所需数量的属性-dim。在下面的例子中,我们创建了两个元素数组,这是3×3矩阵。

    # Create an array.
    a <- array(c('green','yellow'),dim=c(3,3,2))
    print(a)

    当我们上面的代码执行时,它产生以下结果:

    , , 1
    
         [,1]     [,2]     [,3]    
    [1,] "green"  "yellow" "green" 
    [2,] "yellow" "green"  "yellow"
    [3,] "green"  "yellow" "green" 
    
    , , 2
    
         [,1]     [,2]     [,3]    
    [1,] "yellow" "green"  "yellow"
    [2,] "green"  "yellow" "green" 
    [3,] "yellow" "green"  "yellow"  
     

    因子

    因子是使用向量创建的R对象。它存储随同该向量作为标记元素的不同值的向量。 标签始终是字符,而不论它在输入向量的是数字或字符或布尔等。它们在统计建模有用。

    运用 factor() 函数创建因子。nlevels 函数给出级别的计数。可以尝试levels()函数,输出什么

    # Create a vector.
    apple_colors <- c('green','green','yellow','red','red','red','green')
    
    # Create a factor object.
    factor_apple <- factor(apple_colors)
    
    # Print the factor.
    print(factor_apple)
    print(nlevels(factor_apple))

    当我们上面的代码执行时,它产生以下结果:

    [1] green  green  yellow red    red    red    yellow green 
    Levels: green red yellow
    # applying the nlevels function we can know the number of distinct values
    [1] 3   

    数据帧

    数据帧是表格数据对象。不像在数据帧的矩阵,每一列可以包含不同的数据的模型。第一列可以是数字,而第二列可能是字符和第三列可以是逻辑。它与向量列表的长度相等。

    数据帧所使用 data.frame()函数来创建。

    # Create the data frame.
    BMI <- 	data.frame(
    			gender = c("Male", "Male","Female"), 
    			height = c(152, 171.5, 165), 
    			weight = c(81,93, 78),
    			Age =c(42,38,26)
    			)
    print(BMI)

    当我们上面的代码执行时,它产生以下结果:

      gender height weight Age
    1   Male  152.0     81  42
    2   Male  171.5     93  38
    3 Female  165.0     78  26  

     ----------------------------

    输出函数cat()函数

  • 相关阅读:
    Asp.Net MVC3.0中防止跨站的POST
    .NET实现字符串base64编码
    silverlight调用MVC WebApi方法
    MVC实现上传图片的方法
    ASP.NET使用文件上传控件上传图片
    设置网页icon标志
    C# 连接EXCEL 和 ACCESS
    javascript前进、后退、刷新的实现
    DataTable数据统计方法
    常量指针和指针常量
  • 原文地址:https://www.cnblogs.com/csguo/p/7285453.html
Copyright © 2020-2023  润新知