2015-07-28 2 views
1

Я хотел бы создать запрос, вычисляющий значение белого значения wofls на основе количества птиц для первых 5 строк. Есть ли способ использовать sqldf для ограничения вычисление до первых 5 строк?Как создать ярко выраженное среднее значение на некоторых строках фрейма данных

Вот моя игрушка набор данных и строка кода:

df <- read.table(text = "dateTime   birds wolfs  snakes 
          2014-05-21  9   7 a 
          2014-04-28  8   4 b 
          2014-04-13  2   8 c 
          2014-03-12  2   3 a 
          2014-02-04  8   3 a 
          2014-02-29  1   2 a 
          2014-01-17  7   1 b 
          2014-01-16  1   5 c 
          2014-09-20  9   7 c 
          2014-08-21  8   7 c ",header = TRUE) 

library(sqldf) 
g<-sqldf("select avg(wolfs*birds) from df ");g 

ответ

1

Вы можете попробовать

library(sqldf) 
sqldf("select avg(wolfs*birds) as weightavg 
     from df 
     where rowid <=5 ") 
# weightavg 
#1  28.2 

Или

library(dplyr) 
df %>% 
    slice(1:5) %>% 
    summarise(weightavg=mean(birds*wolfs)) 
# weightavg 
#1  28.2 

Или

library(data.table) 
setDT(df)[seq_len(.N)<=5, list(weightavg=mean(wolfs*birds))] 
# weightavg 
#1:  28.2 
+1

Спасибо за подробный ответ. – mql4beginner

 Смежные вопросы

  • Нет связанных вопросов^_^