R:从数据中获取符合条件的行?

时间:2010-10-19 17:28:26

标签: r

我有一个带有大量数据的CSV,如下所示:

> test.csv <- read.csv("~/Desktop/stats.csv")
> test.csv
          m                   lvl a     b           c a_pct  b_pct  c_pct   d_pct
1    543557                    2A 13  255  59.6666667  18.8   10.2    1.6     5.1
2    545059                    2A  0   19   4.0000000  15.8   15.8    5.3    10.5

我希望能够使用a_pct执行类似hist(test.csv$a_pct)的直方图,但仅限于符合条件的行,例如c_pct&gt; 20或c&lt; 200等等。排序类似于SQL WHERE子句。有没有办法在R中轻松完成这项工作?

3 个答案:

答案 0 :(得分:2)

试试这个:

hist(test.csv[test.csv$c_pct > 20 | test.csv$c < 200, "a_pct"]) 

两个注释:

  1. data.frame由[rows,columns]索引,您可以在其中指定任何内容以选择特定的行/列。
  2. 您需要使用|代替||,因为前者是矢量化的。

答案 1 :(得分:2)

一个简单的方法就是:

with( test.csv, hist( a_pct[ c_pct > 20 ] ) )

答案 2 :(得分:1)

你看过吗?子集

hist(subset(test.csv, c_pct > 20 | c < 200, select=a_pct))