ne veri ile.sen'veri t o çerçeve.tablo
Ben sadece R kullanmaya başladı, ve veri ile karşı karşıya geldi.tablo. Çok zekice buldum.
Çok saf bir soru: verileri göz ardı edebilirim.çerçeve verileri kullanmak için.iki paket arasında sözdizimi karışıklığı önlemek için masa?
CEVAP
SSS 1.8 TAMAM, ne veri görmeye başladım.tablo, ama neden veri geliştirmek vermedi.R Kare? Neden yeni bir paket var mı?
SSS 1.1 vurgular,
j
[.data.table
temelde olduğu gibi[.data.frame
j
farklı. Hatta bir şey kadar basitDF[,1]
birçok paket ve kullanıcı kodu mevcut kod sonu olur. Bu, tasarım gereğidir ve daha fazlası için bu şekilde çalışmak istiyoruz çalışmak için karmaşık sözdizimi. Diğer farkları (SSS da var 2.17).Ayrıca,
data.table
data.frame
devralır. Birdata.frame
de.data.table
herhangi bir paketi kabul edilebilir sadecedata.frame
paket[.data.frame
kabul ederdata.table
sözdizimi.R mümkün olduğunca geliştirmeleri de önerdik. Biri bu R 2.12.0: yeni bir özellik olarak kabul edildi
unique()
match()
şimdi tüm elemanlarıCHARSXP
küresel önbelleğinde nerede karakter vektörler hızlı ve işaretsiz var kodlama (ASCII). Matthew sayesinde düşündüren gelişmeler için Dowle yol için karma koduunique.
c oluşturulur.İkinci bir öneri çok olan
duplicate.c
memcpy
kullanmak olmuştur R kopyalar Bu artıracak C'de for döngüsünü daha hızlı bir şekilde veri dahili (13 kez tarafından bazı önlemler). Bu konu üzerinde ar-devel işte : http://tolstoy.newcastle.edu.au/R/e10/devel/10/04/0148.html.
Veri sözdizimi arasında küçük farklar nelerdir 2.17.çerçeve ve veri.tablo?
DT[3]
3 satır anlamına gelir, amaDF[3]
3. sütunu ifade ederDT[3,] == DT[3],
DF[,3] == DF[3]
(biraz karışıklığa yol açacak)- Bu nedenle virgül DT isteğe bağlı, ama DF isteğe bağlı değil
DT[[3]] == DF[3] == DF[[3]]
- Tek bir tamsayı ben nerede
DT[i,]
döner tek bir satır döndüren matrix tek satır alt aksine sadeceDF[i,]
gibi ama vektör.- J tek bir tamsayı olduğu
DT[,j,with=FALSE]
bir sütun bir veri döndürür.varsayılan olarak, bir vektör döndüren tablosu,DF[,j]
aksineDT[,"colA",with=FALSE][[1]] == DF[,"colA"]
.DT[,colA] == DF[,"colA"]
DT[,list(colA)] == DF[,"colA",drop=FALSE]
DT[NA]
NA 1 satır döndürür, amaDF[NA]
DF bir kopyasını boyunca NA döndürür.- 32* *Sembol R yazın mantıksal ve bu nedenle
[.data.frame
tarafından geri dönüştürülüyor. Niyeti wasprobably 34**.[.data.table
kolaylık sağlamak için otomatik olarak yapar.DT[c(TRUE,NA,FALSE)]
SAHTE NA davranır, amaDF[c(TRUE,NA,FALSE)]
satır NA döndürür
NA
her biri içinDT[ColA==ColB]
DF[!is.na(ColA) & !is.na(ColB) & ColA==ColB,]
daha basittirdata.frame(list(1:2,"k",1:4))
,data.table
bir liste oluşturur sütun 3 sütun oluşturur.check.names
varsayılandata.frame
44 *ama kolaylık sağlamak için* 47 ** 46*.stringsAsFactors
varsayılandata.frame
GERÇEK ama verimlilik içindata.table
, YANLIŞ.- Küresel bir dize önbellek R eklenmiş olduğundan, karakterler, öğeleri önbelleğe alınan tek dize ve artık bir var bir işaretçi vardır performans faktörü için coverting yarar.
- Liste sütun atom vektörler kullanılarak yazdırılan çöktü ", " veri.çerçeve, ama "," veri.sonra sondaki virgül ile tablo 6. madde büyük gömülü nesneleri yanlışlıkla baskı önlemek için.
[.data.frame
çok sıkdrop=FALSE
ayarlayın. Biz böcek tek bir sütun seçili olduğu kenar durumlarda ortaya çıkabilir ve tüm unutmak, bir vektör döndürdü bir anda yerine tek bir sütun veri.çerçeve.[.data.table
bunu yapmak için fırsat aldı tutarlı ve bırak.- Ne zaman bir veri.tablo bir veri geçirilir.tablo-habersiz paket, bu paket, bu farklar ile ilgili değil; çok işe yarıyor
Küçük bir uyarı
Belki bazı paketleri bir veri verildiğinde düşüyor kodu kullanın durumlar olacak.çerçeve, ancak, data.table
sürekli bu tür sorunları önlemek için muhafaza ediliyor göz önüne alındığında, ortaya çıkabilecek herhangi bir sorun derhal giderilecektir.
Örneğin
V 1.8.2 için haberlerden
- plyr tarafından gerektiği gibi unname şimdi tekrar çalışıyor::taban::eritmek(). Teşekkürler Raporlama için Christoph Jaeckel. Test eklendi.
- Bir olarak.veri.çerçeve yöntemi İTime ggplot2 geçebilir yani İTime için eklendi hata vermeden, #1713. Raporlama için Buchinsky Farrel için teşekkürler. Testleri eklendi. İTime eksen etiketleri hala gece yarısı; neden ggplot2 bilmiyoruz tamsayı saniye olarak görüntülenir İTime çağırmak yok gibi.karakter yöntemi. İTime ggplot2 bir yaklaşımdır için POSİXct dönüştürmek.
Nasıl R veri bir çerçeve için bir tabl...
Veri NAs ile satırları kaldırın.çerçev...
Ne zaman kullanmalıyım := veri.operatö...
veri.tablo vs dplyr: bir de diğer'...
Nasıl bir tablodan veri kopyalamak içi...