为什么class(answers.list [1])返回R中的列表

时间:2016-04-30 19:01:53

标签: r

给出

    RAnswers <- c(0:10,NA) ;
    SAnswers <- c(0:20,NA) ;
    WAnswers <- c(0:30,NA) ;

    answers.list <- list(RAnswers,SAnswers,WAnswers) ;

    class(RAnswers) ;
    class(answers.list) ;
    class(answers.list[1]) ;
    class(answers.list[[1]]) ;

结果

    > class(RAnswers) ;
    [1] "integer"
    > class(answers.list) ;
    [1] "list"
    > class(answers.list[1]) ;
    [1] "list"
    > class(answers.list[[1]]) ;
    [1] "integer"

为什么class(answers.list [1])返回“list”?

1 个答案:

答案 0 :(得分:1)

在列表中,[用于对列表进行子集化。因此,[返回不同长度的列表。 [[函数用于从列表中提取元素或项目。

子集通常返回R中相同类的对象,尽管当M或N是某个表达式导致长度为1的向量时,矩阵可以移动到具有[M,N]子集的更简单的类(对于data.frames其中N导致长度为1的向量。