R语言方便函数的操作数据帧

示例

一些方便的功能操作data.frames是subset(),transform(),with()和within()。

子集

该subset()函数允许您以data.frame更方便的方式对a进行子集设置(子集也可与其他类一起使用):

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
})