r - 创建一个变量来计算每个观察中出现的变量中零值的数量-R
问题描述
我正在尝试找出一种在 R 中执行此操作的方法,但我一生都无法弄清楚。假设我有一个包含以下内容的 df 。
v1<- c(0, 0, 2, 0 1 3)
v2<- c(1, 0, 8, 1 ,0)
v3<- c(0, 1, 3, 0, 0)
v4<- c(0, 0, 0, 0, 0)
df<- data.frame(v1, v2,v3, v4)
我想创建一个新变量,比如 num_zeros,它计算 v1 到 v3 中每个观察值的 0 数。有没有快速的方法来做到这一点?任何帮助将不胜感激!
解决方案
我们可以使用rowSums
逻辑matrix
来获取 0 个值的计数并将其分配给“num_zeros”列
df$num_zeros <- rowSums(df[c('v1', 'v2', 'v3')] == 0)
或者另一种选择是
df$num_zeros <- (df$v1 == 0) + (df$v2 == 0) + (df$v3 == 0)
注意:这两种方法都是有效的并且是矢量化的
推荐阅读
- python - python 错误计数 cs50 pset6 现金
- python - SpyderKernelApp WARNING No such comm
- python - 如何在所有打开的烧瓶会话中使变量可用
- r - 解读题:Textstat_similarity Quanteda
- node.js - 将 node.js 应用程序连接到 mongoDb Atlas 数据库时出错
- ios - 如何从 HealthKit 获取历史 Step 数据
- vue.js - (Vue路由器)在特定路线上推送参数
- c++ - 如何迭代向量
- c# - 在 c# 中声明我的第二种方法时,我收到错误“静态本地函数在 c#7.3 中不可用”
- c++ - 将带有自定义参数的回调函数传递给 glfwSetKeyCallback()?