SORU
28 Mayıs 2012, PAZARTESİ


Nasıl R veri referans ile bir satır silmek için.tablo?

Benim sorum veri referans karşı kopyalayarak atama ile ilgilidir.tablo. Eğer bir referans satır, benzer silebilir bilmek istiyorum

DT[,someCol:=NULL]

Hakkında bilmek istiyorum

DT[someRow:=NULL, ]

Bu fonksiyon yok neden iyi bir nedeni var sanırım, belki de her zamanki kopyalama yaklaşım için iyi bir alternatif olarak aşağıda işaret olabilir. Örnek(veri.benim favori ile özellikle, tablo)

DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
     x y v
[1,] a 1 1
[2,] a 3 2
[3,] a 6 3
[4,] b 1 4
[5,] b 3 5
[6,] b 6 6
[7,] c 1 7
[8,] c 3 8
[9,] c 6 9

bu verilerden ilk satırı silmek istiyorum diyelim.tablo. Bunu yapabileceğimi biliyorum

DT = DT[-1, ]

ama genellikle nesne 3*N bellek hakkında gerektiren, N nesne. (ve kopyalama çünkü biz bundan kaçınmak istiyoruz, olabilir boyut(DT), as pointed out here. Şimdi set(DT,ı,j,değer) buldum. (Buradaki gibi: satır 1 ve 3 için sıfır) sütun 2 2 tüm değerler kümesi belirli değerleri ayarlamak için ne kadar biliyorum

set(DT,1:2,2:3,0) 
DT
     x y v
[1,] a 0 0
[2,] a 0 0
[3,] a 6 3
[4,] b 1 4
[5,] b 3 5
[6,] b 6 6
[7,] c 1 7
[8,] c 3 8
[9,] c 6 9

ama nasıl ilk iki satır silebilir miyim ki? Yapıyor

set(DT,1:2,1:3,NULL)

tüm DT NULL olarak ayarlar.

Siz bana o kadar SQL bilgim çok sınırlı, verilen bir veri.tablo SQL teknolojisini kullanan, SQL komutu için bir eşdeğerdir

DELETE FROM table_name
WHERE some_column=some_value

veri.tablo?

CEVAP
29 Mayıs 2012, Salı


Güzel soru. data.table referans satır henüz silinemiyor.

data.table ve silmek ekleyebilirsinizsütunlaro zamandan beri referans tarafından aşırı ayırır sütun işaretçileri vektör, bunu siz de biliyorsunuz. Plan benzer bir satır ve insert delete hızlı izin vermektir. Satır sil C memmove öğeleri (her sütun) silinen satır sonra budge kadar kullanmak istiyorsunuz. Silme bir satır ortasında tablo hala oldukça verimsiz göre bir satır depolama veritabanı olarak SQL, hangisi daha uygun bir yer için hızlı ekleme ve silme satır, her yerde bu satır tablo. Ama yine de, bir sürü silinmiş satırlar olmadan yeni bir büyük nesne kopyalama daha hızlı olurdu.

Sütun vektörleri fazla yüklenmiş olabilir, çünkü diğer taraftan, satır (ve silinen) takılı olabilirsonundaanında; örneğin, büyüyen bir saat serisi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007
  • MuscleProdigyTV

    MuscleProdig

    8 Ocak 2011
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005