查找行 NA 的数据框中的唯一性?

2023-12-08

我有一个如下所示的数据框。我想找到唯一的行(唯一性)。但在这个数据中我有“NA”。我喜欢如果一行中具有 NA 值的所有值与其他行相同(如行:1,2,5),我想忽略它,但如果不相同(如行:2,4),我喜欢保留它作为唯一行。 例如,在第 1、2 和 6 行中,除 NA 之外的所有值都相同,因此因为 NA 可以是值“1 和 3”,所以我喜欢删除此行并仅保留第 2 行。 此外,第 6 行中的值 2 和 3(不包括 NA)与行 c2 和 c5 相同,并且 c6 中的 NA 可能获得与 c2 和 c5 相同的值,因此该行不是唯一的。

另外,@Sotos 解决方案对我有更多帮助,但在最后一部分中,在为行创建模式时删除 NA 后,他的解决方案考虑 c8 和 c6 的相同模式 (23) 并删除它们。但实际上c8是独一无二的。

data:

      a1  a2   a3   a4
c1    2    1    3   NA
c2    2    1    3    3
c3    2    1    4    3
c4    2    2    3   NA
c5    2    1    3    3
c6    2    NA   3   NA
c7    2    NA   0   NA
c8    2    3   NA   NA

我想要这样的输出:

output:

     a1    a2  a3   a4
c2    2    1    3    3
c3    2    1    4    3
c4    2    2    3   NA
c7    2    NA   0   NA
c8    2    3   NA   NA

library(stringr) 
df <- unique(df)
#paste rows omitting NAs
df$new <- apply(df, 1, function(i) paste(na.omit(i), collapse = ''))
#use str_detect to determine whether each pattern is found more than once
df$new2 <- rowSums(sapply(df$new, function(i) str_detect(i, df$new)))
new_df <- subset(df, df$new2 == 1)
new_df <- new_df[, !names(new_df) %in% c('new', 'new2')]
new_df
#   V2 V3 V4 V5
#2  2  1  3  3
#3  2  1  4  3
#4  2  2  3 NA

根据您的评论,使用附加行测试代码:

new_df
#   a1 a2 a3 a4
#c2  2  1  3  3
#c3  2  1  4  3
#c4  2  2  3 NA
#c7  2 NA  0 NA

DATA

dput(df)
structure(list(a1 = c(2L, 2L, 2L, 2L, 2L, 2L, 2L), a2 = c(1L, 
1L, 1L, 2L, 1L, NA, NA), a3 = c(3L, 3L, 4L, 3L, 3L, 3L, 0L), 
    a4 = c(NA, 3L, 3L, NA, 3L, NA, NA)), .Names = c("a1", "a2", 
"a3", "a4"), class = "data.frame", row.names = c("c1", "c2", 
"c3", "c4", "c5", "c6", "c7"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找行 NA 的数据框中的唯一性? 的相关文章

随机推荐

  • Swift - 移动到另一个场景时如何从场景中删除滑动手势?

    所以我的游戏使用滑动手势 在我的 didMoveToView 函数中我初始化了这些手势 let swipeRight UISwipeGestureRecognizer swipeRight direction UISwipeGestureR
  • Visual Studio 2017:在类库项目中嵌套文件

    在 Web 项目中 您可以选择嵌套文件 startup cs startup internals cs startup configuration cs 有什么方法可以在类库项目中实现相同的行为吗 更新 部分解决 好的 我知道了 您需要了解
  • NoReverseMatch - Django 1.7 初学者教程

    我正在遵循 Django 1 7 1 中的初学者教程并收到此错误 Reverse for vote with arguments 5 and keyword arguments not found 0 pattern s tried pol
  • 为什么朴素素性测试算法不是多项式

    我想了解为什么以下朴素素性测试算法不是多项式 IsPrime n an integer Begin For i 2 to n 1 do If n i 0 then return no EndIf EndFor return yes End
  • 如何在 iOS 7 上以兼容模式调试应用程序?

    所以 iOS 7发布了 我们很多用户已经升级了 尽管我们官方不支持iOS 7 并要求大家不要升级 目前该应用程序以兼容模式运行 我们的用户报告了很多问题 问题是我不知道如何在兼容模式下调试 所以其中一些问题确实很难修复 我尝试用谷歌搜索它
  • Android JNI 从 Java 类获取两个字段

    在发布任何代码或任何内容之前 让我解释一下我要实现的目标 我想做的是从资产文件夹中获取加载着色器 并传递一组PongDroidShader对象转换为 C 以便它可以编译和加载它们 在我的 Java 类中 我有一个函数 它会遍历着色器文件夹中
  • 使用 SQL Server LIKE 模式搜索“全字匹配”

    有谁有LIKE仅匹配整个单词的模式 它需要将空格 标点符号和字符串的开头 结尾考虑为单词边界 我没有使用 SQL 全文搜索 因为它不可用 我认为在以下情况下没有必要进行简单的关键字搜索LIKE应该能够做到这一点 但是 如果有人测试过全文搜索
  • Haskell:更快的素数求和

    免责声明 我正在研究欧拉问题 9 我正在将一些相当大的数字相加 所有从 1 到 2 000 000 的素数 对这些素数求和需要很长时间 我正在使用 haskell 内置函数 sum as in sum listOfPrimes 还有其他更快
  • 具有相同 nuget 包的项目引用不同版本的程序集

    我快要疯了 我希望这是我忽略的事情 我正在经历间歇性的FileLoadExceptions 即使代码在部署之间发生变化 它们也会在部署后显示不更改任何程序集引用 看看最近的例子 我看到了FileLoadException due to Sy
  • 无需 GUI 即可运行 Electron

    我看到这个问题已被询问但该问题的上下文不同 因此没有与我的用例相关的答案 因此我提出一个新问题 我有一个基于 Electron 的 Web 服务器 它适用于不习惯命令行的网络开发新手 学生和艺术家 是的 这是一个很大的争论 但我被加州大学洛
  • 为什么我的应用程序无法在 Xcode 8 beta (8S128d) 中运行

    这是一个会影响许多应用程序的问题 可以在 Xcode 8 beta 8S128d 中找到 这是第一个 Beta 版 尽管它没有标记为 beta 1 问题出在 NSUserDefaults 上 它不起作用 这是代码 也许可以将其放入appli
  • Python:(显式)字符串参数会损害性能吗?

    假设某个函数总是获取一些它不使用的参数 def someFunc s do something not using s for example a 1 现在考虑这个电话 someFunc the unused string 它给出一个字符串
  • DbNull.Value 和 DbNull.Value.ToString() 之间的区别

    我想知道哪种用法是正确的 if string IsNullOrEmpty parentID cmd Parameters Add new SqlParameter ParentSesID parentID else cmd Paramete
  • 将用于生成电子邮件的 PHP 脚本转换为使用表单中的变量行

    我正在使用 PHP 脚本根据表单中的信息生成电子邮件 该表单的行数可变 我已将表单中每行的输入名称转换为数组 方法是添加 名称后 以便所有行中的数据都可用于生成电子邮件 但是 我不知道该怎么做是如何构建 PHP 以便它可以生成一封电子邮件
  • WinForms 文本框中的按钮

    WinForms 文本框是否具有任何可以在框末尾嵌入按钮的属性 就像 Chrome 地址框上的收藏夹按钮一样 我还在某些 Excel 表单中看到类似以下内容 EDIT 我按照 Hans Passant 的回答添加了一个点击事件处理程序 它似
  • 多个处理程序附加到一个事件:如何仅分离一个?

    在我正在处理的这个模块中 我有一个监听窗口中 调整大小 事件的监听器 每次运行模块时 我都需要检查是否已经有一个侦听器注册到该事件并将其分离 以避免出现不需要的行为 内存泄漏等 到目前为止一切顺利 但是 在我们正在开发的这个应用程序中 有可
  • Rails 多列上的唯一索引失败(sqlite3)

    我使用 Rails 设置了一个 HATBM 模型 其中包含一个用户表 一个组表和一个用于连接的 groups users 所有这些都使用scaffold 命令 现在我想添加一个迁移 以在表 groups users 的 group id 和
  • 为什么IDIV为-1会导致浮点异常?

    据我了解 idiv ebx将分裂edx eax 按顺序连接成 64 位值 与 32 位ebx 然而 当我尝试划分时0x00000000 0xfffffffb 0 和 5 与0xffffffff 1 我得到一个浮点异常 有人可以解释为什么吗
  • 将 PHP/MySQL 数据拆分为 3 列

    我需要使用从 MySQL 返回的数据在 PHP 中创建 3 个 HTML 列 我希望数据在所有 3 列之间均匀分配 我将如何做到这一点 你可以尝试做这样的事情 result mysql query SELECT value FROM tab
  • 查找行 NA 的数据框中的唯一性?

    我有一个如下所示的数据框 我想找到唯一的行 唯一性 但在这个数据中我有 NA 我喜欢如果一行中具有 NA 值的所有值与其他行相同 如行 1 2 5 我想忽略它 但如果不相同 如行 2 4 我喜欢保留它作为唯一行 例如 在第 1 2 和 6