2016-01-24 23 views
6

Chcę skopiować pełną zawartość ramki danych, która została odczytana z pliku csv. Nie wierzę, że jest to duplikacja, jeśli wykonam copyOfFirstFrame < - firstFrame. Więc co muszę zrobić?Jak utworzyć kopię ramki danych w R

firstFrame <- read_csv("fileName.csv") 
copyOfFirstFrame <- ????? 

, jeśli ma następujący adres pamięci pozostaje bez zmian copyOfFirstFrame < - firstFrame

np

copyOfFirstFrame <- firstFrame 
tracemem(firstFrame) == tracemem(copyOfFirstFrame) 
[1] TRUE 

Kopia musi dawać dwa unikatowe adresy pamięci. Aby uzyskać szczegółowe informacje, sprawdź numer In R, how can I check if two variable names reference the same underlying object?.

+1

Jeśli to zrobię i porównaję adres pamięci, to nadal będą to te same obiekty w pamięci. Zaktualizowałem szczegóły pytania – user1605665

Odpowiedz

6

Korzystanie cbind jednym data.frame zapewni masz kopię:

> 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 
> 
2

DANE Pozwolić być wcześniej istniejący obiekt ramka danych. Tworzę nowy obiekt, KOPIUJ, który jest dokładną kopią DANYCH, ale zajmuje inne miejsce w pamięci i dlatego nie wskazuje oryginalnej ramki danych.

używam data.frame function() tak:

> COPY<-data.frame(DATA) 

sprawdzić, czy adresy pamięci są takie same czy nie tracemem() przy użyciu:

> tracemem(COPY)==tracemem(DATA) 
> [1] FALSE 

wystarczająco Lame, myślę .

Powiązane problemy