Nasıl veri sütun silmek.tablo?
Bir sütun "adlı bir data.frame
, yapabileceğim: . foo kurtulmak için
df <- df[-grep('foo',colnames(df))]
df
data.table
bir nesneye dönüştürülür ancak, bir kez, sadece bir sütunu kaldırmak için yolu yoktur.
Örnek:
df=data.frame(id=1:100,foo=rnorm(100))
df2 <- df[-grep('foo',colnames(df))] # works
df3=data.table(df)
df3[-grep('foo',colnames(df3))]
Ama data.table
nesneye dönüştürüldükten sonra, bu artık çalışmıyor.
CEVAP
Aşağıdaki herhangi bir veri sütunu foo
kaldıracaktır.tablo df3
:
# Method 1 (and preferred as it takes 0.00s even on a 20GB data.table)
df3[,foo:=NULL]
# Method 2a -- A safe idiom for excluding columns matching a regular expression
df3 <- df3[, which(!grepl("^foo$", colnames(df3))), with=FALSE]
# Method 2b -- An alternative to 2a, also "safe" in the sense described below
df3 <- df3[, grep("^foo$", colnames(df3), invert=TRUE), with=FALSE]
veri.tabloayrıca aşağıdaki sözdizimini destekler:
## Method 3 (could then assign to df3,
df3[, !"foo", with=FALSE]
ama eğer sen gerçekten istemek kaldırmak sütun "foo"
df3
(karşıt olarak bir yazıcı görünümü df3
eksi sütun "foo"
) gerçekten kullanmak istiyorsanız Yöntem 1 yerine.
(Not, Eğer kullandığınız bir yöntem güvenerek grep()
grepl()
, set pattern="^foo$"
yerine "foo"
, eğer istemiyorsan sütun adları gibi "fool"
"buffoon"
(yani içerenler foo
gibi bir dize) için de aynı kaldırıldı.)
Daha az güvenli seçenek, etkileşimli kullanım için iyi
Önümüzdeki iki cümleler de işine yarardf3
sütun "foo"
eşleşen içerirama eğer öyle değilse muhtemelen beklenmedik bir şekilde başarısız olur. Örneğin, bunlardan herhangi varolmayan sütunu aramak için kullanıyorsanız "bar"
sıfır-sıralı veri ile bitireceğiz.tablo.
Sonuç olarak, çok iyi, örneğin, bir veri görüntülemek için isteyebilirsiniz interaktif kullanım için uygundur.isimleri alt "foo"
içeren tablo eksi herhangi bir sütun. Programlama amacıyla, Yöntem 1, 2a, 2b ve gerçekten iyi bir seçenek.
# Method 4a:
df3 <- df3[,-grep("^foo$", colnames(df3)), with=FALSE]
# Method 4b:
df3 <- df3[, !grepl("^foo$", colnames(df3)), with=FALSE]
Nasıl bir sütun silmek için MySQL bir ...
Nasıl R veri referans ile bir satır si...
Nasıl Server tablo sütun olup olmadığı...
Bunları nasıl belirli sütun adları ile...
Nasıl MySQL veritabanı / tablo / sütun...