【发布时间】:2023-03-12 10:28:01
【问题描述】:
在 Hadley Wickam 的 Advanced R 中多次介绍了使用空索引对数据框进行索引的技术,但只是顺便解释了一遍。我正在尝试找出使用空索引对列表进行索引的规则。考虑以下四个陈述。
> (l <- list(a = 1, b = 2))
$a
[1] 1
$b
[1] 2
> (l[] <- list(c = 3))
$c
[1] 3
> l
$a
[1] 3
$b
[1] 3
> l[]
$a
[1] 3
$b
[1] 3
问题:
- 为什么第二个语句的输出与第三个语句的输出不同?分配不应该返回被分配的对象,在这种情况下,第二个语句应该产生与第三个相同的输出?
- 为什么第二个语句中的赋值导致第三个语句之后显示的输出?分配给空索引列表的规则是什么?
- 第四条语句为什么会产生显示的输出?当空索引不在赋值左侧时,使用空索引对列表进行索引的规则是什么?
【问题讨论】:
-
这里需要一个数据框来说明我在书中使用这种技术的原因(以保留被分配对象的属性)。