繁体   English   中英

R中出现次数的计数和分组

[英]Counting and grouping number of occurrencies in R

我有一个数据集,其中包含变量“ customerID ”和“ Country ”。 当然,有几个具有相同customerID的实例,因为它是一个包含零售商店的年度数据的数据集。 我想按国家/地区计算客户数量 ,但问题是我不知道如何仅对每个customerID一次“ 增加 ”计数器。 我认为我必须同时使用table()unique()函数,但是我不知道如何使用。

数据集看起来像这样

    InvoiceNo   StockCode    CustomerID        Country
1   536365      70897a       17850             United Kingdom     
2   536365      71053        17850             United Kingdom
3   536365      84406B       17850             United Kingdom
4   536366      22752        18652             United Kingdom
5   536367      66543        18652             United Kingdom
6   536368      71053        17556             USA

我想有一个表(或数据框)这样的回报

United Kingdom     USA
             2       1

我认为table功能是要走的路。 如果您对重复的行有疑问,则可能要先清理它们。 例如,您可以使用数字索引来解决该问题。

一旦table工作,就可以制作汇总表。 这是一个假设的示例:

summary_table <- data.frame(
    customerID_count=table(your_data$_customerID), 
    country_count = table(your_data$country)
)

(ps:很好的问了第一个问题,并开始使用stackoverflow。您应该包括一个有效的示例)

我相信我们可以使用group_bysummarise dplyr包中的函数

我创建了一个仅具有customerID(V1)和country(V2)的示例数据框

df <- data.frame(V1=c("17850","17850","17850","18652","18652","17556"),V2=c("UK","UK","UK","UK","UK","USA"))
library(dplyr)
df %>% group_by(V2) %>% summarise(count=length(unique(V1)))

      V2 count
1     UK     2
2    USA     1

这是使用table和子集的基本R方法:

with(unique(df[c("CustomerID", "Country")]), table(Country))
Country
United_Kingdom            USA 
             2              1 

要获取一个data.frame,将其包装为data.frame

data.frame(with(unique(df[c("CustomerID", "Country")]), table(Country)))
         Country Freq
1 United_Kingdom    2
2            USA    1

数据

df <- read.table(header=TRUE, text="InvoiceNo   StockCode    CustomerID  Country
536365      70897a       17850             United_Kingdom
536365      71053        17850             United_Kingdom
536365      84406B       17850             United_Kingdom
536366      22752        18652             United_Kingdom
536367      66543        18652             United_Kingdom
536368      71053        17556             USA")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM