在R中随机保留其中一个重复行(不是第一个重复行),可以通过以下步骤实现:
duplicated
函数会标记第一个出现的重复行为FALSE
,其余为TRUE
。# 示例数据
df <- data.frame(
id = c(1, 2, 2, 3, 3, 3, 4, 4, 4, 4),
value = c("a", "b", "b", "c", "c", "c", "d", "d", "d", "d")
)
# 找出所有重复行
duplicates <- df[df$duplicated(df), ]
# 随机选择一行保留
random_row <- duplicates[sample(nrow(duplicates), 1), ]
# 将随机选择的行标记为不重复
df[df$duplicated(df), ] <- NA
df <- df[!is.na(df$id), ]
df <- rbind(df, random_row)
# 查看结果
print(df)
通过上述步骤,你可以在R中随机保留一个重复行(不是第一个重复行)。这种方法适用于数据清洗和数据采样的场景,确保数据的多样性和减少冗余。
领取专属 10元无门槛券
手把手带您无忧上云