【发布时间】:2020-09-29 00:12:03
【问题描述】:
我有 54,000 行和 500 列的数据,但特定列“政策编号”中的许多值具有相同的政策编号,因为数据集包括货币价值发生变化的任何时间(但最重要的 100列具有相同的值)。 (主数据集命名为Home)
数据集示例:
Total Claim Claim number Type of Loss Date .....
$45,000 3500 Fire 2001 ....
$45,000 3500 Fire 2002 ....
$45,000 3500 Water 2001 ....
我想要的是将具有相同编号的所有声明连接在一起作为一行,如果一列具有不同的值,则将它们与中间的逗号组合在一起。
我想要的结果示例:
Total Claim Claim number Type of Loss Date.....
$45,000 3500 Fire, Water 2001, 2002 ...
我尝试过聚合、合并和 rbind,但我认为我编码错误,因为它不起作用。以下是我尝试过的所有不同的代码行。
# Creating a dataset where all the same policy numbers are together
SamePolicy <- aggregate(Home[,3:446], list(Home[,2]), function(x) paste0(unique(x)))
SamePolciy <- merge(data.frame(Home), by="Claim_Number")
SamePolicy <- merge(Home, Home$Total_Claim, by="Claim_Number")
SamePolicy <- aggregate(.~Home$Claim_Number, df, function(x) paste0(unique(x)))
编辑:我有很多列,所以如果可能的话,我不想专门调用每一列来进行编辑?另外,我希望删除列中的重复,所以我只想要 2001,2002 而不是输出 2001,2002,2001。
【问题讨论】: