簡體   English   中英

准備數據進行分析

[英]preparing data for analysis

我在這里是新手,對R和統計資料來說還是很新。 我以csv格式獲得了簡單的100萬行數據。 共有4欄:說出Col1-位置Col2-某人的名字Col3-日期訪問COl4-訪問時間

將其導入R時,它們將轉換為數據幀,並且所有列都是字符(我使用str()查找導入的數據的結構,而class()就是為什么我知道其data.frame的原因。

如您所見,它們都不是數字的,我希望能夠進行一些匯總,例如按人,按天,按時間按位置(或反之亦然)統計訪問次數。

我是否需要在R之外操作數據,例如導入SQL並在那里進行一些聚合,還是可以在R中執行此操作?

希望您能引導我朝正確的方向...非常感謝Peddie

我建議您熟悉plyr軟件包。

install.packages("plyr")

它將要求您選擇一個下載位置,只需選擇最接近的位置即可。 然后加載庫

library(plyr)

好吧,可以說我們有一個像這樣的數據框

 > df
    Name  Day Location
52  Jake  Wed       MI
25 Sally  Tue       NY
38   Sue  Fri       NY
45 Sally  Tue       MI
42   Sue  Mon       MI
17 Sally  Fri       CA
28  Jake  Tue       NY
14   Sue Thur       CA
47   Jim  Tue       MI
67   Jim  Tue       AL

我們可以問問每個位置訪問了多少次

> ddply(df, .(Location), summarise, count=length(Name))
  Location count
1       CA     2
2       NY     3
3       MI     4
4       AL     1

或特定日期有多少人造訪過某個地點

> ddply(df, .(Location, Day), summarise, count=length(Name))
  Location  Day count
1       CA Thur     1
2       CA  Fri     1
3       NY  Tue     2
4       NY  Fri     1
5       MI  Mon     1
6       MI  Tue     2
7       MI  Wed     1
8       AL  Tue     1

您應該查看有關plyr的完整教程,但是對於上面的命令而言,本質上是ddply通過指定列中值的唯一組合來拆分數據幀,並根據函數匯總數據(在我們的案例長度)。

我希望這有幫助。

我喜歡plyr是因為我首先學習它,但是似乎每個人都朝着dplyr

對於非常特定的計數, plyrdplyr中都有count()函數。

一些例子:

> plyr::count(df$column1)
     x freq  
1 var1 55  
2 var2 63  
3 var3 12
> plyr::count(df$column1 == "var1")
      x freq  
1 FALSE 75
2 FALSE 55
> plyr::count(df$column1 == "var1" & df$column2 == "varA")
      x freq  
1 FALSE 105
2 FALSE 25

對於dplyr,給出的第一個示例的基本語法為:

> dplyr::count(df, column1)
# A tibble: 2 x 2  
  column1   n     
  chr     int  
1 var1    55  
2 var2    63  
3 var3    12

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM