我有几列重复行的数据集。(基于名称ProjectID的一列重复)。
我想删除重复的行并只保留其中一行。 但是,这些行中的每一行都有一个单独的金额值,需要对最终的合并行进行求和和存储。
我使用了聚合功能。但是它会删除所有其他列(通过我知道的用途)。 有人可以告诉我一个更简单的方法。
附加了示例数据集。 dataset
答案 0 :(得分:0)
这可以使用dplyr
解决,正如@PLapointe指出的那样。如果您的数据集名为df
,那么这将作为
df %>%
group_by(`Project ID`, `Project No.`, `Account Head`, `Function`, `Functionary`) %>%
summarise(cost.total = sum(Amount))
这应该这样做。您还可以调整要保留的变量。
答案 1 :(得分:0)
它是一种更复杂的方法,但对我有用。
我使用聚合函数聚合了有关ProjectID的数量,并将它们存储在一个新的tibble中。
此外,我将此列作为新列附加到原始tibble。
它并没有完全符合我的要求。但我能够使用新的专栏Final_Amount
来保持早期的Amount
列不相关。
Duplicate_remove2 <- function(dataGP_cleaned)
{
#aggregating unique amounts
aggregated_amount <- aggregate(dataGP_cleaned['Amount'], by=dataGP_cleaned['ProjectID'], sum)
#finding Distinct dataset
dataGP_unique <- distinct(dataGP_cleaned, ProjectID, .keep_all = TRUE)
#changing name of the column for easy identification
aggregated_amount$Final_Amount <- aggregated_amount$Amount
#appending the list
aggregate_dataGP <- bind_cols(dataGP_unique, aggregated_amount['Final_Amount'] )
return(aggregate_dataGP)
}