在R中使用split,然后将每个组件分配给新的向量

时间:2015-07-20 14:56:17

标签: r split

我列出了业务经历的损失清单(由唯一ID标识),如下所示:

Unique company ID   Gross amount
1                   223,220.00
2                   0
3                   386,640.40
4                   19,891.95
1                   0
2                   355,000.00
3                   161,212.13
4                   27,720.00
1                   14,846.00
2                   900,000.00

我使用保险公司ID分拆损失数据,使用以下内容:

individualinsurer <- split(lossdata,lossdata$Unique.ID)

我想知道如何在拆分中制作每件商品,例如individualinsurer[1]成一个向量。这将有助于我对每个独特的公司ID进行进一步的统计分析。

由于 小号

1 个答案:

答案 0 :(得分:1)

您可以使用get_reference以多种方式汇总数据。以下是按ID分组的常见摘要的几个示例。观察的总和,平均值和数量如下所示。

(注意:数据部分显示如何将数字列转换为能够计算的实数。)

dplyr

@akrun建议的library(dplyr) lossdata %>% group_by(Unique.ID) %>% summarise(sums = sum(Gross.amount), obs = n(), avg = mean(Gross.amount)) #Source: local data frame [4 x 4] # # Unique.ID sums obs avg #1 1 238066.00 3 79355.33 #2 2 1255000.00 3 418333.33 #3 3 547852.53 2 273926.27 #4 4 47611.95 2 23805.97 解决方案:

data.table

数据

setDT(lossdata)[,list(sums=sum(Gross.amount), obs=.N, avg= mean(Gross.amount)) , Unique.ID]
#   Unique.ID       sums obs       avg
#1:         1  238066.00   3  79355.33
#2:         2 1255000.00   3 418333.33
#3:         3  547852.53   2 273926.27
#4:         4   47611.95   2  23805.97