1

さまざまなチームがさまざまな日に受け取った問い合わせを示す .csv ファイルのデータがあります。お問い合わせは、次のように入力します。

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フィールドから月を抽出し、各月の各「チーム」文字列の発生率を数え、それらを互いにプロットすることですが、どの関数がそれらを処理するのかわかりません。ドキュメント。

私はここで初期段階にいることを知っているので、読んでおくべき関数へのポインタだけでもいただければ幸いです。

4

2 に答える 2

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"

そして、月ごとの各チームの発生率を見つけるには、チームと月に従って集計する必要があります。

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

そして今、data.frameとして(プロット目的で):

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()

ここに画像の説明を入力

于 2012-11-01T08:46:00.743 に答える
0

潤滑剤パッケージをチェックしてください

ここに例があります

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)

これが役立つことを願っています

于 2012-08-17T15:55:31.087 に答える