R:创建列表(list)


 

    向量的元素要求都是同类型的,而列表(list)与向量不同,可以组合多个不同类型的对象。列表在R中扮演着一个至关重要的角色,是数据框和面向对象编程的基础。

    列表是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表能整合若干(可能无关的)对象到单个对象名下。例如,某个列表中可能是若干向量、矩阵、数据框,甚至是其他列表的组合。

    从技术上讲,列表就是向量。之前我们接触过的普通向量都称为“原子型(atomic)”向量,就是说,向量的元素已经是 最小的、不可再分的。而列表则属于“递归型(recursive)”向量。

    可以使用函数list()创建列表:

mylist <- list( name1=object1, name2=object2, … )

    其中的对象可以是R语言中的任何数据结构。

 

list( name="Joe", salary=55000, union=T )

$name

[1] "Joe" 


$salary

[1] 55000 


$union

[1] TRUE


    R语言中列表各组件的名称叫做标签(tags),例如上面代码中的salary。实际上标签是可选的,也可以不指定。上面代码也可以这样写:

> list( "Joe", 55000, T )

[[1]]

[1] "Joe" 

[[2]]

[1] 55000 

[[3]]

[1] TRUE

    但是一般来说推荐为各个部分取名而不用这些默认的数值,这样使代码更清晰而且不容易犯错误。

 

    在使用的时候,标签的名字可以简写,只写出前几个字母,只要不引起歧义,R都能识别:

> l <- list( name="Joe", salary=55000, union=T )

> l$salary

[1] 55000

> l$sal

[1] 55000

 

    因为列表是向量,因此可以使用vector来创建列表。

> z <- vector( mode = "list" )

> z[["abc"]] <- 3   #两个中括号间不允许有空格

> z

$abc[1] 3

 

    测试列表的长度:

> l <- list( name="Joe", salary=55000, union=T )

> length( l )

[1] 3

 

►列表连接

    当连接函数c()的参数中有列表对象时,结果就是一个列表模式的对象,它的分量是那些当作参数的列表。

> list.ABC <- c( list.A, list.B, list.C )

 

    由于两个原因,列表成了R中的重要的数据结构。首先,列表允许以一种简单的方式组织和重新调用不相干的信息;其次,许多R函数的运行结果都是以列表的形式返回的。

注意:

Ю 对象名称中的句点(.)没有特殊意义。但美元符号($)却有着和其他语言中的句点类似的含义,即指定一个对象中的某部分。

Ю R不提供多行注释或块注释功能。必须以#作为多行注释每行的开始。出于调试的目的,可以把想让编译器忽略的代码放到语句if(FALSE){…}中。

Ю 将一个值赋给某个向量、矩阵、数组或列表中一个不存在的元素时,R将自动扩展这个数据结构以容纳新值。

Ю R中没有标量。标量以单元素向量的形式出现。

Ю R中的下标不从0开始,而从1开始。

Ю 变量无法被声明,它们在首次被赋值时生成。

 




  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
R语言中,可以使用不同的方法来创建列表list)。 第一种方法是使用list()函数来建立一个列表。在这种情况下,可以将不同的元素作为参数传递给list()函数,这些元素可以是不同的数据类型。例如,可以使用list()函数创建一个包含字符串、数字和整数的列表,如下所示: ``` list("Rsometimes", 190, 5) ``` 第二种方法是在创建列表时直接给出标签。这种方法可以使用命名参数的方式来创建一个具有标签的列表。例如,可以使用下面的代码创建一个包含title、duration和track标签的列表: ``` list(title = "Rsome times", duration = 190, track = 5) ``` 可以使用str()函数来显示列表的数据结构。例如,可以使用下面的代码来显示一个名为song的列表的结构: ``` song <- list(title = "Rsome times", duration = 190, track = 5) str(song) ``` 另外,可以使用“$”符号来提取列表中的变量。这种方法只适用于具有命名参数的列表。例如,可以使用下面的代码来提取song列表中的duration变量: ``` song <- list(title = "Rsome times", duration = 190, track = 5) song$duration ``` <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [R语言学习笔记(1)——建立list](https://blog.csdn.net/Sesametyz/article/details/112210606)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值