用於操作 data.frames 的便捷功能
操作 data.frames
的一些便利功能是 subset()
,transform()
,with()
和 within()
。
子集
subset()
函式允許你以更方便的方式對 data.frame
進行子集化(子集也可以與其他類一起使用):
subset(mtcars, subset = cyl == 6, select = c("mpg", "hp"))
mpg hp
Mazda RX4 21.0 110
Mazda RX4 Wag 21.0 110
Hornet 4 Drive 21.4 110
Valiant 18.1 105
Merc 280 19.2 123
Merc 280C 17.8 123
Ferrari Dino 19.7 175
在上面的程式碼中,我們只詢問 cyl == 6
和列 mpg
和 hp
的行。你可以使用 []
使用以下程式碼獲得相同的結果:
mtcars[mtcars$cyl == 6, c("mpg", "hp")]
轉變
transform()
函式是一個方便的函式,用於更改 data.frame
中的列。例如,下面的程式碼將另一個名為 mpg2
的列新增到 mpg^2
到 mtcars
data.frame
:
mtcars <- transform(mtcars, mpg2 = mpg^2)
與…內
with()
和 within()
都可以讓你評估 data.frame
環境中的表示式,允許更清晰的語法,節省你使用一些 $
或 []
。
例如,如果要在 airquality
data.frame
中建立,更改和/或刪除多個列:
aq <- within(airquality, {
lOzone <- log(Ozone) # creates new column
Month <- factor(month.abb[Month]) # changes Month Column
cTemp <- round((Temp - 32) * 5/9, 1) # creates new column
S.cT <- Solar.R / cTemp # creates new column
rm(Day, Temp) # removes columns
})