2016-01-24 21 views
6

Bir csv dosyasında okunan bir veri çerçevesinin tüm içeriğini çoğaltmak istiyorum. CopyOfFirstFrame < - firstFrame yaparsam bir çoğaltma olduğuna inanmıyorum. Peki ne yapmam gerekiyor?Bir veri çerçevesinin kopyasını nasıl oluştururum? R

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

i aşağıdaki bellek adresi aynı copyOfFirstFrame kalır eğer < - firstFrame

ör

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

kopya iki eşsiz bellek adresleri neden olmalıdır. Ayrıntılar için In R, how can I check if two variable names reference the same underlying object? kontrol edin.

+1

Bunu yapar ve bellek adresini karşılaştırırsam bellekte hala aynı nesnedir. Soru detaylarını güncelledim – user1605665

cevap

6

tek data.frame ile cbind kullanarak bir kopyasını sağlayacaktır:

> 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

Let VERİ önceden varolan veri çerçevesi nesne. DATA'nın tam bir kopyası olan yeni bir nesne, COPY oluşturuyorum, ancak farklı bir bellek konumuna sahip ve bu nedenle özgün veri çerçevesine işaret etmiyor. Ben hafıza adresinin aynı olup olmadığını kontrol etmek veya tracemem() kullanmayan

> COPY<-data.frame(DATA) 

: Yeterince

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

Lame, sanırım

böyle fonksiyon data.frame() kullanın .

İlgili konular