R 重命名一个对象/data.frame 没有中间对象

标签 r performance object rename

我正在尝试重命名一个大型 R 对象(一个 data.frame ~ 9GB)以匹配一些已经编写的代码。对象以名称 df1 保存并且编写代码以查找名为 df2 的对象。 .

我发现的唯一建议 here建议创建一个新的、正确命名的对象版本。考虑到内存限制,这不是一个选项。有没有办法在结构本身的某处更改对象的名称,或者某种浅拷贝?任何建议,将不胜感激。

最佳答案

@landroni 回答了这个问题。这是一个示例,表明这确实是 R 的工作方式。

# copy an object to a new variable name, no change in memory usage
rm(list=ls())
gc()
memory.size()
# [1] 40.15
big.obj <- seq(1e7)
memory.size()
# [1] 78.34
big.obj.renamed <- big.obj
memory.size()
# [1] 78.34
rm(big.obj)
memory.size()
# [1] 78.34


# if the first variable is modified, however, you see the evidence of a hard copy
rm(list=ls())
gc()
memory.size()
# [1] 40.15
big.obj <- seq(1e7)
memory.size()
# [1] 78.34
big.obj.renamed <- big.obj
memory.size()
# [1] 78.34
big.obj[1] <- 2 # modifying the original forces hard copy
memory.size()
# [1] 192.8

关于R 重命名一个对象/data.frame 没有中间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25271298/

相关文章:

r - 如何避免R中的内存限制

r - 在 r visnetwork 包中用值和宽度控制边缘宽度

r - 计算离散时间马尔可夫链的标准误差和标准差

java - Java 数组与 C++ 数组的性能和内存使用情况

java - 变量应该在java中声明在循环内还是循环外

javascript - 在 Javascript 中解构对象字段并计算总和

r - 使用 2 个数据帧在 R 中进行有效的子集化

java - 为什么这段代码在有锁的情况下运行得更快?

javascript - 如何合并包含对象的数组?

javascript - 使用对象数组的对象中的唯一元素创建新对象