高级R语言(1)|基础篇:names,value,objetct,vector

Author

kili

Published

2024-10-07

本文的目标是帮助您了解名称(names)和值(value)之间的区别,以及 R 何时将复制对象(object)。

首先思考下面三个问题(我会在文末给出答案)

1.给定以下数据框,如何创建名为 “3” 的新列,其中包含 1 和 2 之和?您只能使用 $,而不能使用 [[。是什么让 1、2 和 3 作为变量名称具有挑战性?

df <- data.frame(runif(3), runif(3))
names(df) <- c(1, 2)

2.在下面的代码中,y 占用了多少内存?

x <- runif(1e6)
y <- list(x, x, x)

3.在以下示例中,将 a 复制到哪一行?

a <- c(1, 5, 3, 2)
b <- a
b[[1]] <- 10
Code
```{r}
library(lobstr)
```

何为绑定

考虑下面的代码:

Code
```{r}
x <- c(1, 2, 3)
```

很容易错误理解为创建一个名为 ‘x’ 的对象,将值向量 c(1, 2, 3)赋值到x

实际上在R中,这行代码创建的对象是一个值向量 c(1, 2, 3)。 并该对象绑定到名称 x。

符号``

Code
```{r}
obj_size(1:3)
obj_size(c(1,2))
a<-1:2
obj_size(a)
```
680 B
64 B
680 B