我有一个巨大的数据帧,加载在R中的global environment中,名为df.如何通过将数据框指定给另一个符号并删除原始符号来重命名数据框,而不复制数据框?

推荐答案

R足够聪明,如果变量相同,就不会复制,所以只需继续,重新分配并复制原始变量.

例子:

x <- 1:10
tracemem(x)
# [1] "<0000000017181EA8>"
y <- x
tracemem(y)
# [1] "<0000000017181EA8>"

正如我们所看到的,两个对象都指向同一个地址.如果其中一个对象被修改,R会在内存中创建一个新副本,即:两个对象不再相同.

# Now change one of the vectors
y[2] <- 3
# tracemem[0x0000000017181ea8 -> 0x0000000017178c68]: 
# tracemem[0x0000000017178c68 -> 0x0000000012ebe3b0]: 
tracemem(x)
# [1] "<0000000017181EA8>"
tracemem(y)
# [1] "<0000000012EBE3B0>"

相关职位:How do I rename an R object?

R相关问答推荐

在R中,如何在使用tibble::enFrame % % unlist转换后从收件箱中重组嵌套列表?

R kableExtra在插入水平线时添加额外的空白行

如何设置搜索栏来搜索整个Shiny应用程序页面?

指定要保留在wrap_plots中的传奇

使用na.locf在长格式数据集中输入具有多个时间点的数据集

在特定列上滞后n行,同时扩展框架的长度

Tidyverse/Djirr为从嵌套列表中提取的列名赋值的解决方案

如何根据条件计算时差(天)

从开始时间和结束时间导出时间

在数学中正确显示摄氏度、开氏度或华氏度

gganimate在使用shadow_mark选项时不保留所有过go 的标记

如何根据R中其他列的值有条件地从列中提取数据?

如何改变x轴比例的列在面

R函数‘paste`正在颠倒其参数的顺序

汇总数据表中两个特定列条目的值

如何平滑或忽略R中变量的微小变化?

优化从每个面的栅格中提取值

如何将这个小列表转换为数据帧?

从线的交点创建面

R中的Desolve:返回的导数数错误