r - 为满足 R 中条件的行分配因子
问题描述
如何创建一个附加列,根据该行是否满足 3 个条件中的 1 个来分配一个因子?
在示例中,如果仅存在 a 的条目,我希望列分配 1,如果存在 a 和 b 的条目,则分配 2,如果行具有 a、b 和 c 的条目,则分配 3。
before <- data.frame(
a = c(1,3,2,2,4),
b = c(NA,2,3,NA,3),
c = c(NA,NA,NA,NA,5)
)
after <- data.frame(
a = c(1,3,2,2,4),
b = c(NA,2,3,NA,3),
c = c(NA,NA,NA,NA,5),
level = c(1,2,2,1,3)
)
解决方案
您可以使用is.na
androwSums
来计算每行存在多少条目。
before$level <- rowSums(!is.na(before))
before
# a b c level
#1 1 NA NA 1
#2 3 2 NA 2
#3 2 3 NA 2
#4 2 NA NA 1
#5 4 3 5 3
推荐阅读
- python - 按日期时间和日期列合并 Pandas 数据框
- nestjs - 在 Nestjs 中使用类验证器验证嵌套对象
- javascript - 如何使 ctx.linewidth 不影响先前绘制的线条
- python - 计算两个不同数据帧中包含字符串的两列之间的字符串相似度
- python - 测试正态性的不同方法导致相同数据的不同输出
- postgresql - 如何从postgres jsonb嵌套数组中获取字段
- database - 确保 MongoDB 数据库目录具有正确的读/写权限
- .net-core - HtmlRendererCore.PdfSharpCore 版本 1.0.1“找不到合适的字体。”
- javascript - 如何在开发服务器中为 react-scripts 启动调用定义基本 URL
- html - nboots中两个div元素之间不必要的空格