当 R 使用 c() 组合两个向量时会发生什么?

问题描述 投票:0回答:1

当您使用 c() 连接 R 中的 2 个向量时,它“组合参数并产生向量”。它是否通过创建一个新向量来获取这两个向量的元素来组合它们,或者是否有一种方法可以按字面意思组合为两个向量分配的数据空间?

当我搜索它时,我无法得到解释,但 c() 的视觉表示实际上只是将第二个向量附加到第一个向量的末尾,但我认为这只是为了让我们可以轻松理解这个函数的含义确实如此,而不是实际发生的情况。

我是 R 新手,因此我们将不胜感激!

r
1个回答
0
投票

c()
,与 R 中的许多函数一样,使用“修改时复制”行为,其中新向量占用与源向量不同的内存。

adv-r.hadley.nz/names-values.html#binding-basics

这是一个简短的演示:

library(lobstr)
a <- "1"
b = a
c = c(a)
obj_addr(a) # an address in memory
obj_addr(b) # same address
obj_addr(c) # new address
© www.soinside.com 2019 - 2024. All rights reserved.