如何有效地过滤数据框? [英] How to efficiently filter a data frame?

查看:146
本文介绍了如何有效地过滤数据框?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数据框,试图只选择我感兴趣的观测数据:

  data [data [Var1]> 10] 

不幸的是,这个命令破坏了data.frame结构并返回一个很长的向量。

我想要的是data.frame缩短了与我的标准不符的观察值。


<您在您的声明中缺少逗号。



试试这个: $ b $ b

  data [data [,Var1]> 10,] 

或者:

  data [data $ Var1> 10,] 

或者:

 子集(数据,Var1> 10)






例如,在内置的数据集 mtcars

  data (mtcars)

mtcars [mtcars [,mpg]> 25,]

mpg cyl disp hp drat wt qsec vs am gear碳
菲亚特128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
本田思域30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
丰田卡罗拉33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
菲亚特X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
保时捷914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2


mtcars [mtcars $ mpg> 25,]

mpg汽油发动机重量qsec与中间齿轮碳水化合物
菲亚特128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
本田思域30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
丰田卡罗拉33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
菲亚特X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
保时捷914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
莲花欧洲30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2

子集(mtcars,mpg> 25)

mpg cyl disp hp drat wt qsec vs am gear carb
菲亚特128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
本田思域30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
丰田卡罗拉33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
菲亚特X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
保时捷914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
荷花欧罗巴30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2


I have a data frame and tried to select only the observations I'm interested in by this:

data[data["Var1"]>10]

Unfortunately, this command destroys the data.frame structure and returns a long vector.

What I want to get is the data.frame shortened by the observations that don't match my criteria.

解决方案

You are missing a comma in your statement.

Try this:

data[data[, "Var1"]>10, ]

Or:

data[data$Var1>10, ]

Or:

subset(data, Var1>10)


As an example, try it on the built-in dataset, mtcars

data(mtcars)

mtcars[mtcars[, "mpg"]>25, ]

                mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2


mtcars[mtcars$mpg>25, ]

                mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2

subset(mtcars, mpg>25)

                mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2

这篇关于如何有效地过滤数据框?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆