zoukankan      html  css  js  c++  java
  • R中一切都是vector

    0、可以说R语言中一切结构体的基础是vector!

    R中一切都是vector,vecotor的每个component必须类型一致(character,numeric,integer....)!
    vector 是没有dimensions的也没有attributes,所以去掉dimension和attributes就成了vector(其实dimension可以作为attributes的一个属性存在但是named** 命名**一般不会作为attributes的属性的)
    解释下

    0.1为何没有dimensions?

    ------这里其实纠正我一个观点:我一直以一个点是有维度的,但其实点是标量

    What I don't understand is why vectors (with more than one value) don't 
    have dimensions. They look like they do have 1 dimension. For me no 
    dimension 没有dimension就是标量,比如一个点就是标量. Like in geometry: a point has no dimension, 
    a line has 1, a square has 2, a cube 3 and so on. Is it because of some 
    internal process? The intuitive geometry way of thinking is not 
    programmatically relevant?
    

    0.2、没有attributes,如果加了attributes怎么样?

    factors是character data,但是要编码成 numeric mode,每个number 关联一个指定的string,称为levels。比如

     1 > fac<- factor(c("b", "a", "b"))
     2 > dput(fac)
     3 structure(c(2L, 1L, 2L), .Label = c("a", "b"), class = "factor")
     4 > levels(fac)
     5 [1] "a" "b"
     6 > fac
     7 [1] b a b
     8 Levels: a b
     9 > as.numeric(fac)
    10 [1] 2 1 2
    11 factor组成: integer vector+ levels attributes

    1、arrary和vecotr的转换

    if we remove dimension part array just a vector----array去掉属性dimension就是vector

    >nota=array(1:4,4)//只有一个dimension 的array
    >dim(not1)<-NULL
    >dput(nota)
    1:4
    >is.array(nota)
    >is.vector(nota)

    2、array和matrix的转换

    arrays are matrices with more than 2 dimensions.<==>matrices are arrays with only 2 dimensions
    Arrays can have any number of dimensions including 1, 2, 3, etc.
    比如只有一个维度的array nota=array(1:4,4)

    3、list和vecotor的转换a list with no attributes is a vecotor,所以如下没有设置属性的list是vector 的

    > vl<- list(sin, 3, "a")
    > is.vector(vl)
    [1] TRUE
    > class(vl)
    [1] "list"
    > attributes(vl)
    NULL
    注意names 不是属性的,所以namedlist依旧是vector
    > my.list <- list(num=1:3, let=LETTERS[1:2])
    > names(my.list)
    [1] "num" "let"
    > is.vector(my.list)
    [1] TRUE
  • 相关阅读:
    UVA
    UVA
    模板——扩展欧几里得算法(求ax+by=gcd的解)
    UVA
    模板——2.2 素数筛选和合数分解
    模板——素数筛选
    Educational Codeforces Round 46 (Rated for Div. 2)
    Educational Codeforces Round 46 (Rated for Div. 2) E. We Need More Bosses
    Educational Codeforces Round 46 (Rated for Div. 2) D. Yet Another Problem On a Subsequence
    Educational Codeforces Round 46 (Rated for Div. 2) C. Covered Points Count
  • 原文地址:https://www.cnblogs.com/amazement/p/4897229.html
Copyright © 2011-2022 走看看