如何在R中查找数据框不同长度列的共有元素
原因说明
你之前用duplicated()得不到正确结果是因为这个函数的作用是识别单个向量内的重复值或者数据框的整行重复记录,和你需要的「跨所有列都存在的共有元素」逻辑完全不匹配。
实现方法
核心逻辑是先提取每列的非空唯一值,再对所有列的取值取交集,代码如下:
如果你的空白单元格读取后为NA,用以下代码:
# 提取每列的非空唯一值 col_unique_vals <- lapply(animals, function(col) unique(na.omit(col))) # 取所有列的交集 common_vals <- Reduce(intersect, col_unique_vals) # 转为单列数据框输出 output_df <- data.frame(common_elements = common_vals)
如果你的空白单元格是实际的空字符串"",把na.omit(col)替换为col[col != ""]即可。
运行后output_df就是你要的预期结果。
内容的提问来源于stack exchange,提问作者Dswede43
相关产品推荐
相关产品推荐

