Bir veri çerçevesinden kaldırmak istediğim birkaç sütunum var. Bunları aşağıdaki gibi bir şey kullanarak tek tek silebileceğimizi biliyorum:
df$x <- NULL
Ancak bunu daha az komutla yapmayı umuyordum.
Ayrıca, bu şekilde tamsayı indeksleme kullanarak sütunları düşürebileceğimi biliyorum:
df <- df[ -c(1, 3:6, 12) ]
Ancak değişkenlerimin göreceli konumunun değişebileceğinden endişe ediyorum.
R'ın ne kadar güçlü olduğu göz önüne alındığında, her bir sütunu tek tek bırakmaktan daha iyi bir yol olabileceğini düşündüm.
Basit bir isim listesi kullanabilirsiniz:
DF <- data.frame(
x=1:10,
y=10:1,
z=rep(5,10),
a=11:20
)
drops <- c("x","z")
DF[ , !(names(DF) %in% drops)]
Ya da alternatif olarak, saklanacakların bir listesini yapabilir ve onlara isimleriyle atıfta bulunabilirsiniz:
keeps <- c("y", "a")
DF[keeps]
DÜZENLE:
İndeksleme fonksiyonunun drop
argümanına hala aşina olmayanlar için, bir sütunu veri çerçevesi olarak tutmak istiyorsanız, yaparsınız:
keeps <- "y"
DF[ , keeps, drop = FALSE]
drop=TRUE(veya belirtilmemesi) gereksiz boyutları düşürecek ve dolayısıyla
y` sütununun değerlerini içeren bir vektör döndürecektir.
Ayrıca hangi sütunları istediğinizi biliyorsanız subset
komutu da kullanışlıdır:
df <- data.frame(a = 1:10, b = 2:11, c = 3:12)
df <- subset(df, select = c(a, c))
Hadley tarafından yapılan yorumdan sonra güncellenmiştir: a,c sütunlarını bırakmak için şunları yapabilirsiniz:
df <- subset(df, select = -c(a, c))