Code
```{r}
library(lobstr)
```kili
2024-10-07
Contact me via bilibili
本文的目标是帮助您了解名称(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
考虑下面的代码:
很容易错误理解为创建一个名为 ‘x’ 的对象,将值向量 c(1, 2, 3)赋值到x
实际上在R中,这行代码创建的对象是一个值向量 c(1, 2, 3)。 并该对象绑定到名称 x。
符号``
---
title: 高级R语言(1)|基础篇:names,value,objetct,vector
date: '2024-10-7'
image: 2.jpg
categories: ["R","高级R"]
---
本文的目标是帮助您了解名称(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
```
```{r}
library(lobstr)
```
# 何为绑定
考虑下面的代码:
```{r}
x <- c(1, 2, 3)
```
很容易错误理解为创建一个名为 'x' 的对象,将值向量 c(1, 2, 3)赋值到x
实际上在R中,这行代码创建的对象是一个值向量 c(1, 2, 3)。 并该对象绑定到名称 x。
符号\`\`
```{r}
obj_size(1:3)
obj_size(c(1,2))
a<-1:2
obj_size(a)
```