2012-08-17 2 views
1

다른 팀에서 다른 날짜에받은 문의 사항을 보여주는 .csv 파일의 데이터가 있습니다.R의 날짜 부분에 발생률을 플로팅하는 방법은 무엇입니까?

Team,Date_received,Date_answered 
Team 1,31/01/10,05/02/10 
Team 3,05/03/10,17/04/10 
... 

나는 각 팀이 지난 6 개월의 각을 통해 수신 얼마나 많은 문의 나타내는 그래프를 그릴 싶어하지만 R에 새로운 갑자기 빨리지고있어 다음과 같이 문의 입력됩니다. 나는 (O'Reilly의 R in a Nutshell에서) 시계열 문서를 찾았지만 필자가 필요로하는 것보다 훨씬 더 복잡한 것처럼 보인다.

지금까지 나는 데이터를 읽고 POSIXlt로 날짜 문자열을 변환 다음과 같이했습니다

c_data <- read.table("~/data.csv", header=T, sep=",") 
c_data$Date_received <- as.Date(c_data$Date_received, "%d/%m/%y") 
c_data <- as.POSIXlt(c_data$Date_received) 
... 

을하지만, 거기에서 나는 잃었어요. 내가하고 싶은 일은 POSIXlt 필드에서 월을 추출하고, 각 달의 각 '팀'문자열의 발생률을 계산하고 서로 대립하는 것이지만, 어떤 함수가 그러한 함수를 처리 하는지를 모르며 고민하고 있습니다. 문서들.

내가 초기 단계에 있다는 것을 알고 있기 때문에 내가 읽어야 할 기능에 대한 포인터조차도 인정 될 것이다.

답변

1

도움이되기를 바랍니다 :

c_data <- data.frame(Team=paste("team", sample(1:3,10, replace=TRUE)), 
        Date_received=paste(sample(1:31,10,replace=TRUE), sample(1:12,10,replace=TRUE), rep(10,10,replace=TRUE), sep="/")) 
c_data 
    Team Date_received 
1 team 3  13/7/10 
2 team 1  2/5/10 
3 team 2  14/5/10 
4 team 1  15/4/10 
5 team 1  25/1/10 
6 team 3  30/4/10 
7 team 3  23/9/10 
8 team 3  7/9/10 
9 team 2  7/6/10 
10 team 2  4/6/10 

먼저 당신이이 Date 객체로 날짜를 선언하십시오.

c_data$Date_received <- as.Date(c_data$Date_received, "%d/%m/%y") 

이 월을 추출하려면, 간단 아무 :

:

c_data$month <- format(c_data$Date_received, "%m") 
c_data$month 
[1] "07" "05" "05" "04" "01" "04" "09" "09" "06" "06" 

그리고, 한달에 각 팀의 발생을 찾기 위해, 당신은 당신의 팀과 달에 따라 표로 필요가 없습니다

그리고 지금 data.frame로

t_data <- table(c_data$Team, c_data$month) 
t_data 

     01 04 05 06 07 09 
    team 1 1 1 1 0 0 0 
    team 2 0 0 1 2 0 0 
    team 3 0 1 0 0 1 2 
(대한 음모를 꾸미고 목적) :

d_data <- as.data.frame(t_data) 
d_data 
    Var1 Var2 Freq 
1 team 1 01 1 
2 team 2 01 0 
3 team 3 01 0 
4 team 1 04 1 
5 team 2 04 0 
6 team 3 04 1 
7 team 1 05 1 
8 team 2 05 1 
9 team 3 05 0 
10 team 1 06 0 
11 team 2 06 2 
12 team 3 06 0 
13 team 1 07 0 
14 team 2 07 0 
15 team 3 07 1 
16 team 1 09 0 
17 team 2 09 0 
18 team 3 09 2 

# Back to Date objects 
d_data$Var2 <- as.Date(paste("1",d_data$Var2,"10",sep="/"), "%d/%m/%y") 

library(ggplot2) 
ggplot(d_data, aes(Var2, Freq, group = Var1, color = Var1)) + 
geom_line() 
,536,

enter image description here

+0

감사합니다. 나는 원래 R에있는 해결책을 생각해 내지 못했기 때문에 파이썬으로 데이터를 미리 요리하기 시작했다. 그러나 이것은 여분의 단계를 생략했다. –

0

체크 아웃 여기에 lubridate 패키지

예를 들어

df <- read.table(header=TRUE, text=" 
Team Date_received Date_answered 
Team1 31/01/10 05/02/10 
Team3 05/03/10 17/04/10 
      ") 

require(lubridate) 
date_Received <- dmy(df$Date_received) 

month(date_Received) 

나는이 일부 더미 데이터로 시작

관련 문제