使用 rowwise() 计算数据帧每行中 NA 数量的问题

2023-11-26

我在使用 rowwise() 计算每行中 NA 的数量时遇到问题。我的最小例子:

df <- data.frame(Q1 = c(rep(1, 1), rep(NA, 9)),
                 Q2 = c(rep(2, 2), rep(NA, 8)),
                 Q3 = c(rep(3, 3), rep(NA, 7))
)
df
   Q1 Q2 Q3
1   1  2  3
2  NA  2  3
3  NA NA  3
4  NA NA NA
5  NA NA NA
6  NA NA NA
7  NA NA NA
8  NA NA NA
9  NA NA NA
10 NA NA NA

我想创建一个新列来计算每行中 NA 的数量。我可以通过写来非常简单地做到这一点

 df$Count_NA <- rowSums(is.na(df))
 df
   Q1 Q2 Q3 Count_NA
1   1  2  3        0
2  NA  2  3        1
3  NA NA  3        2
4  NA NA NA        3
5  NA NA NA        3
6  NA NA NA        3
7  NA NA NA        3
8  NA NA NA        3
9  NA NA NA        3
10 NA NA NA        3

但是,如果我尝试使用 rowwise() 通过 dplyr 执行此操作,我会得到错误的答案 - Count_NA 列每行具有相同的数字:

df %>%
   rowwise() %>%
   mutate(Count_NA = sum(is.na(.)))
# A tibble: 10 x 4
# Rowwise: 
      Q1    Q2    Q3 Count_NA
   <dbl> <dbl> <dbl>    <int>
 1     1     2     3       24
 2    NA     2     3       24
 3    NA    NA     3       24
 4    NA    NA    NA       24
 5    NA    NA    NA       24
 6    NA    NA    NA       24
 7    NA    NA    NA       24
 8    NA    NA    NA       24
 9    NA    NA    NA       24
10    NA    NA    NA       24

我做错了什么,我该如何解决这个问题?

提前谢谢了

托马斯·飞利浦


Use cur_data()而不是点。.[cur_group_id(), ], c(Q1, Q2, Q3), across() or c_across() (or c_across根据其他答案的论点)也可以。

注意最好使用ungroup之后,否则它将保留 rowwise 的记忆,稍后您可能会得到意想不到的结果。

df %>%
   rowwise() %>%
   mutate(Count_NA = sum(is.na(cur_data()))) %>%
   ungroup

giving:

# A tibble: 10 x 4
      Q1    Q2    Q3 Count_NA
   <dbl> <dbl> <dbl>    <int>
 1     1     2     3        0
 2    NA     2     3        1
 3    NA    NA     3        2
 4    NA    NA    NA        3
 5    NA    NA    NA        3
 6    NA    NA    NA        3
 7    NA    NA    NA        3
 8    NA    NA    NA        3
 9    NA    NA    NA        3
10    NA    NA    NA        3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 rowwise() 计算数据帧每行中 NA 数量的问题 的相关文章

随机推荐

  • Phonegap - Xcode 中的 Javascript 调试

    我正在开发一个基于phonegap 的项目 我想使用一些调试工具 以便能够将一些变量等调试到 XCode 控制台等中 现在 我发现 为了做到这一点 我需要调用函数 console log 然而 问题是 当在模拟器中运行应用程序时 XCode
  • 如何安装模块化升压?

    因为我需要测试 Boost 的一些实验性功能 所以我想从 Modular Boost 存储库安装 Boost 我按照以下说明进行操作https svn boost org trac boost wiki TryModBoostb2 命令失败
  • 具有动态 QName 的 XSLT 调用模板?

    我已经到处寻找解决我的问题的方法 但我只是有更多问题 考虑以下 XML
  • Android:返回上一个活动而不调用 finish()

    我有一个带有很多活动的 Android 应用程序 就像一本书 其中每一页都是一个新活动 用户可以在每个活动中进行更改 例如用不同颜色的标记突出显示某些文本等 只要应用程序保持活动状态 我就记住这些信息 并且我不想 不需要记住任何当它不是时这
  • 私有云和公有云有什么区别?

    私有云和公有云有什么区别 请定义两者并给出用法示例 公共云通过 Web 应用程序 Web 服务 通常通过 Internet 连接 作为服务提供 私有云和内部云部署在防火墙内部 由用户组织管理 还有另一种类型的云 即混合云 对于大多数企业来说
  • 何时在 Objective-C 中使用关联对象

    最近了解了objective c中的关联对象以及如何实现它们 根据我的理解 如果您只希望对象的单个实例具有某个属性 那么它们会很有帮助 我想不出 Objective C 中关联对象的任何特定用例 意味着我无法使用其他方法来完成的用例 有谁有
  • 使用 Pyinstaller 创建 .exe 错误:未找到程序集 amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none

    首先我要提到的是 我在 Windows 7 上通过 Anaconda 发行版使用 Python 2 7 6 跑步时pyinstaller onefile MyScripy py我只收到一个错误 即标题中提到的错误 并且创建了 exe 运行
  • 将复选框样式设置为切换按钮

    在我的网站上 用户可以发布文章并使用一些预设标签相应地标记它们 这些标签采用复选框的形式 下面的例子
  • 读PDF时,TJ运算符奇怪的编码

    我目前正在尝试从 PDF 文档中提取文本 但我在使用 Tj 运算符时遇到了一些奇怪的情况 通常我处理过这样的情况 Tc SOME TEXT TJ 现在我遇到这样一个案例 Tm 1 828 5 1 841 2 1 828 2 1 828 4
  • 有没有办法在 JavaScript 中反转 Intl.NumberFormat 的格式

    The Intl NumberFormat see Mozilla 的文档 在 Javascript 中提供了一种将数字格式化为当前语言环境版本的好方法 如下所示 new Intl NumberFormat format 3400 retu
  • emberjs处理401未授权

    我正在构建一个 ember js 应用程序 并且挂在身份验证上 json Rest 后端是rails 每个请求都使用会话 cookie 进行身份验证 warden 当用户第一次导航到应用程序根时 Rails 会重定向到登录页面 一旦会话被授
  • 在 Unity 中使用资源文件夹

    我正在开发一个 HoloLens 项目 需要引用 txt 文件 我将文件存储在 Unity 的 资源 文件夹中 并且它们工作得很好 通过 Unity 运行时 string basePath Application dataPath stri
  • Ruby on Rails:添加 Facebook 登录、Twitter 登录、OpenID 登录等的最佳方式

    我目前正在 Ruby on Rails 应用程序上运行 并使用 Authlogic 处理我的身份验证和用户管理 我正在努力寻找有关向我的网站添加第 3 方登录方法的最佳方法的最新信息 以补充标准注册和登录 那里有很多教程 但似乎都已经过时或
  • Scala 代码不获取 s3 文件

    我正在尝试运行 EMR 烫金作业 Scala 代码应该获取位于 S3 存储桶中的文本文件的内容 这scala io source库搞乱了 S3 路径的正确位置 我将参数 runidfile 提供给 EMR 作业 runidfile s3 m
  • 上下文无关语言问题(泵引理)

    我知道这与编程没有直接关系 但我想知道是否有人知道如何将泵引理应用于以下证明 显示L a n b n c m n m 不是上下文无关的语言 我对应用泵送引理非常有信心 但这一点真的让我很恼火 你怎么认为 编辑 我完全把你引入了错误的轨道 当
  • WordPress 永久链接结构更改问题

    我在 SO 上看到过一些关于这个问题的其他帖子 但是建议的解决方案都不适合我 所以我重新发布 将我的永久链接结构更改为 postname 所有链接均无效 我得到以下 404 信息 Not Found The requested URL my
  • 模拟所有物理按钮,例如 iOS 7 上主页按钮的压力(越狱)

    我试图在 iOS 7 上模拟 按下主页按钮 但之前在 iOS 6 上使用的方法不起作用 我当然指的是越狱设备 include GSEvent h void simulateHomeButton struct GSEventRecord re
  • 为什么我的课程不符合 CLS?

    这真让我困惑 我尝试删除只读 更改名称 我在这里做错了什么 public abstract class CatalogBase
  • 隐藏 URL 中传递的变量

    我们一直在开发一个 Web 应用程序 并且即将完成它 但有一件事困扰着我们 尽管它绝不会停止生产 当我们调用其中一个页面 index html 时 有时必须在 URL searchid 中向其传递一个变量 所以我们得到一个像这样的页面htt
  • 使用 rowwise() 计算数据帧每行中 NA 数量的问题

    我在使用 rowwise 计算每行中 NA 的数量时遇到问题 我的最小例子 df lt data frame Q1 c rep 1 1 rep NA 9 Q2 c rep 2 2 rep NA 8 Q3 c rep 3 3 rep NA 7