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

  • AmazonWireless

    AmazonWirele

    8 EYLÜL 2010
  • boogie2988

    boogie2988

    6 NİSAN 2006
  • dougownsall

    dougownsall

    7 EKİM 2007