R: получить подходящие строки из данных? - PullRequest
2 голосов
/ 19 октября 2010

У меня есть 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> 20 или c <200 и т. Д. Вроде как предложение SQL WHERE.Есть ли способ сделать это легко в R? </p>

Ответы [ 3 ]

2 голосов
/ 19 октября 2010

Простой способ это просто:

with( test.csv, hist( a_pct[ c_pct > 20 ] ) )
2 голосов
/ 19 октября 2010

Попробуйте это:

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

Две ноты:

  1. Data.frame индексируется с помощью [строки, столбцы], где вы можете указать что угодно, чтобы выбрать конкретные строки / столбцы.
  2. Вам нужно использовать | вместо ||, поскольку первый векторизован.
1 голос
/ 19 октября 2010

Вы смотрели на? Subset

hist(subset(test.csv, c_pct > 20 | c < 200, select=a_pct))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...