在R语言中基于现有数据框的唯一列值组合创建新数据框
保留DataFrame中所有列的唯一组合(R语言)
你可以通过两种常用方法快速提取DataFrame中所有列的唯一行组合:
方法1:基础R的unique()函数
直接调用unique()函数传入目标DataFrame,它会自动识别所有列的唯一组合并完成去重:
# 原始数据 plot <- data.frame(plot=c("A", "A", "A", "B", "B", "C", "C", "C"), grid= c(1,1,1,2,2,3,3,3), year1=c(2000,2000,2010,2000,2010,2000,2010,2010), year2=c(2005,2005,2015,2005,2015,2005,2015,2015)) # 提取唯一组合 unique_plot <- unique(plot) # 查看结果 unique_plot
输出结果:
plot grid year1 year2 1 A 1 2000 2005 3 A 1 2010 2015 4 B 2 2000 2005 5 B 2 2010 2015 6 C 3 2000 2005 7 C 3 2010 2015
方法2:tidyverse的dplyr::distinct()函数
如果习惯使用tidyverse生态,distinct()函数更灵活,默认会保留所有列的唯一组合:
library(dplyr) # 提取唯一组合 unique_plot <- plot %>% distinct() # 查看结果 unique_plot
输出与上述方法完全一致。若需针对特定列去重并保留其他列,可指定列名并设置.keep_all = TRUE,但你的场景下直接使用默认参数即可。
内容的提问来源于stack exchange,提问作者starski
相关产品推荐
相关产品推荐

