2014-11-06 3 views
-3

Я создал фрейм данных следующего типаУсловные суммы в R

Name Date  Value 
A 01.01.01 10 
B 02.01.01 2 
A 04.01.01 4 
... 

Я хотел бы получить список, который ранжирует элементы в столбце Имя по общей сумме, при условии, что даты в пределах определенный диапазон.

+3

[*** Вы пробовали что-нибудь? ***] (http://whathaveyoutried.com) – Barranka

ответ

1

Добро пожаловать в переполнение стека (SO). Очень важно, чтобы кто-нибудь задавал вопросы, чтобы предоставить воспроизводимые данные, которые вы можете получить, используя dput(). Пожалуйста, прочитайте this link. Если вы что-то пробовали, вы хотите оставить свой код и описать, каков ваш вызов. Таким образом, вы можете помочь пользователям SO сэкономить больше времени, и вы, скорее всего, получите больше поддержки. Здесь я сделал все возможное, чтобы прочитать ваш вопрос, создал образец данных и сделал следующее, используя пакет dplyr.

# Sample data 
foo <- data.frame(id = c("A", "B", "A", "C", "D", "B", "D", "E", "A", "S", "B"), 
        date = c("01.01.01", "02.01.01", "04.01.01", "05.01.01", 
          "11.01.01", "09.03.01", "12.15.01", "08.08.01", 
          "03.27.01", "11.16.01", "04.07.01"), 
        value = c(-10, -2, -4, 8, 5, 2, 10, 5, 11, 7, 8), 
        stringsAsFactors = FALSE) 

# id  date value 
#1 A 01.01.01 -10 
#2 B 02.01.01 -2 
#3 A 04.01.01 -4 
#4 C 05.01.01  8 
#5 D 11.01.01  5 
#6 B 09.03.01  2 
#7 D 12.15.01 10 
#8 E 08.08.01  5 
#9 A 03.27.01 11 
#10 S 11.16.01  7 
#11 B 04.07.01  8 

library(dplyr) 

foo %>% 
    # Create date objects 
    mutate(date = as.Date(date, format = "%m.%d.%y")) %>% 
    # Select data points which stay between 2001-01-01 and 2001-08-31 
    filter(between(date, as.Date("2001-01-01"), as.Date("2001-08-31"))) %>% 
    # For each id group 
    group_by(id) %>% 
    # Get sum of value 
    summarise(Total = sum(value)) %>% 
    # Arrange row order by descending order with Total 
    arrange(desc(Total)) 

# id Total 
#1 C  8 
#2 B  6 
#3 E  5 
#4 A -3 
+0

Спасибо большое, jazzurro! Прошу прощения за то, что я недостаточно определен для моей проблемы и для синтаксиса вопроса, который я разместил. Я новичок R, и на данный момент у меня нет обзора наиболее полезных пакетов для конкретной проблемы. Я смог решить проблему с вашей помощью. – SBFin

+0

@SBFin Добро пожаловать. Замечательно, что вы решили проблему! – jazzurro

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