Method for k-anonymizing datasets having sensitive information, wherein k is a predetermined integer, the method comprising the steps of: determining a dataset of records (x) from the datasets to be assigned to aggregation clusters; iterating the steps of: 1) when the iteration number is a multiple of a predetermined integer parameter: - computing an average record ( x) of the dataset; - finding a most distant first record ( x r) to the average record ( x) using a distance measure (dm); - finding a most distant second record ( x s) from the first record ( x r) using the distance measure (dm); and the steps of 2) - forming a first aggregation cluster around the first record ( x r) and a second aggregation cluster around the second record ( x s), wherein the first aggregation cluster comprises k records closest to the first record ( x r) and the second aggregation cluster comprises k records closest to the second record ( x s); and - generating a new dataset by subtracting the first cluster and the second cluster from the previous dataset, wherein the predetermined integer parameter is a predefined repetition counter (calcRevision) strictly greater than 1 and the repetition counter (calcRevision) is adapted to define after how many iterations a recalculation of the average record ( x), the most distant first record ( x r), and most distant second record ( x s) is performed. determining a dataset of records (x) from the datasets to be assigned to aggregation clusters; iterating the steps of: 1) when the iteration number is a multiple of a predetermined integer parameter: - computing an average record ( x) of the dataset; - finding a most distant first record ( x r) to the average record ( x) using a distance measure (dm); - finding a most distant second record ( x s) from the first record ( x r) using the distance measure (dm); and the steps of 2) - forming a first aggregation cluster around the first record ( x r) and a second aggregation cluster around the second record ( x s), wherein the first aggregation cluster comprises k records closest to the first record ( x r) and the second aggregation cluster comprises k records closest to the second record ( x s); and - generating a new dataset by subtracting the first cluster and the second cluster from the previous dataset, wherein the predetermined integer parameter is a predefined repetition counter (calcRevision) strictly greater than 1 and the repetition counter (calcRevision) is adapted to define after how many iterations a recalculation of the average record ( x), the most distant first record ( x r), and most distant second record ( x s) is performed. 1) when the iteration number is a multiple of a predetermined integer parameter: - computing an average record ( x) of the dataset; - finding a most distant first record ( x r) to the average record ( x) using a distance measure (dm); - finding a most distant second record ( x s) from the first record ( x r) using the distance measure (dm); and the steps of - computing an average record ( x) of the dataset; - finding a most distant first record ( x r) to the average record ( x) using a distance measure (dm); - finding a most distant second record ( x s) from the first record ( x r) using the distance measure (dm); 2) - forming a first aggregation cluster around the first record ( x r) and a second aggregation cluster around the second record ( x s), wherein the first aggregation cluster comprises k records closest to the first record ( x r) and the second aggregation cluster comprises k records closest to the second record ( x s); and - generating a new dataset by subtracting the first cluster and the second cluster from the previous dataset, wherein the predetermined integer parameter is a predefined repetition counter (calcRevision) strictly greater than 1 and the repetition counter (calcRevision) is adapted to define after how many iterations a recalculation of the average record ( x), the most distant first record ( x r), and most distant second record ( x s) is performed. - forming a first aggregation cluster around the first record ( x r) and a second aggregation cluster around the second record ( x s), wherein the first aggregation cluster comprises k records closest to the first record ( x r) and the second aggregation cluster comprises k records closest to the second record ( x s); and - generating a new dataset by subtracting the first cluster and the second cluster from the previous dataset,