2015-08-24 14 views
11

Karakterlerimdeki adı görünen bir data.table içindeki sütunları seçmeye çalışıyorum. İşlem, salt bir data.frame içinde çalışır, ancak bir data.table içinde çalışmaz. İşte tekrarlanabilir bir örnek.Belirli sütun adlarının bir karakter vektörünü kullanarak data.table sütunları nasıl seçilir?

> names(mtcars) 
[1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" 
[11] "carb" 
> myVector <- c('disp', 'hp', 'wt') 
> head(mtcars[, myVector]) 
        disp hp wt 
Mazda RX4   160 110 2.620 
Mazda RX4 Wag  160 110 2.875 
Datsun 710   108 93 2.320 
Hornet 4 Drive  258 110 3.215 
Hornet Sportabout 360 175 3.440 
Valiant   225 105 3.460 

Sadece disp, hp ve wt içeren bir vektör yapılan ve bu vektörü kullanarak data.frame karşılık gelen sütun seçilir. Şimdi data.frame'imden data.table bir nesne yapalım ve aynı işlemi yapmaya çalışalım.

> library(data.table) 
> mtcarsDT <- data.table(mtcars) 
> mtcarsDT[, myVector] 
[1] "disp" "hp" "wt" 

cevap

15

Biz birlikte ?data.table

göre data.frame

mtcarsDT[, myVector, with=FALSE] 

aynı işlemi yapmak için with=FALSE kullanabilirsiniz: ve 'j' '= DOĞRU ile' Varsayılan olarak değerlendirilir 'x' çerçevesinin içinde; sütun adları değişken olarak kullanılabilir. ‘with = FALSE’ ‘j’, sütun adlarının veya sayısal sütun vektörlerinin seçilmesi gereken sütun karakterleri ve döndürülen her zaman bir "data.table" değeridir. F with = FALSE ’, sütunları dinamik olarak seçmek için genellikle‘ data.table ’içinde yararlı olan 'dır.

İlgili konular