R中是否有办法简单地重命名数据框而不先复制现有数据框,给它一个新名称,然后删除原始数据?
据我所知,复制的数据帧不占用额外的内存。我只是想限制我的RStudio环境中的对象数量,以减少混乱和下游的潜在错误。
例如:
df <- data_frame(a = c(1:5),
b = c(6:10))
我知道我总能做到这一点
df2 <- df
# Or this
assign('df2', df)
但在这两种情况下我仍然需要删除df
,所以我宁愿做这样的事情:
df3 <- rename(df2)
答案 0 :(得分:0)
您是否担心创建新对象和存储问题?因为根据@ Hadley在这个帖子http://r.789695.n4.nabble.com/renaming-objects-td851715.html中的帖子,如果你只是分配两个对象,那么R实际上并没有创建一个新对象。按照Hadley的例子,您可以看到&#34; R只会在a或b被修改时创建一个副本&#34;:
a <- data.frame(a = c(1:5),b = c(6:10))
gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 1661290 88.8 2564037 137.0 2403845 128.4
Vcells 2354971 18.0 7963162 60.8 63055235 481.1
b <-a
gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 1661285 88.8 2564037 137.0 2403845 128.4
Vcells 2354961 18.0 7963162 60.8 63055235 481.1
概念化这一点的一个好方法可能是将a
和b
视为指向R中相同对象的指针。因此,对象只存储一次,但可以由两者引用a
和b
。