我想复制已从*.csv文件读入的数据框的全部内容.如果我这样做,我不相信这是重复copyOfFirstFrame <- firstFrame.那么我需要做什么?
firstFrame <- read_csv("fileName.csv")
copyOfFirstFrame <- ?????
Run Code Online (Sandbox Code Playgroud)
如果我执行以下操作,则内存地址保持不变.
copyOfFirstFrame <- firstFrame
tracemem(firstFrame) == tracemem(copyOfFirstFrame)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
副本必须产生两个唯一的内存地址.Check In R,我如何检查两个变量名是否引用相同的底层对象?详情.
小智 28
设DATA是预先存在的数据帧对象.我正在创建一个新对象COPY,它是DATA的精确副本,但它占用不同的内存位置,因此不指向原始数据帧.
我使用函数data.frame(),如下所示:
> COPY<-data.frame(DATA)
Run Code Online (Sandbox Code Playgroud)
我使用tracemem()检查内存地址是否相同:
> tracemem(COPY)==tracemem(DATA)
> [1] FALSE
Run Code Online (Sandbox Code Playgroud)
我觉得嘛够了.
hd1*_*hd1 11
将cbind与一个data.frame一起使用将确保您拥有一个副本:
> df <- cbind(NA, NA)
> df2 <- cbind(df)
> df2
[,1] [,2]
[1,] NA NA
> df2[,1] <- 1
> df
[,1] [,2]
[1,] NA NA
> df2
[,1] [,2]
[1,] 1 NA
>
Run Code Online (Sandbox Code Playgroud)
或者我们可以使用data.table::copy().
df.1 <- data.frame(1)
library(data.table)
df.2 <- copy(df.1)
> tracemem(df.1) == tracemem(df.2)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29885 次 |
| 最近记录: |