首页 > 解决方案 > 为满足 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)
)

标签: rdataframecount

解决方案


您可以使用is.naandrowSums来计算每行存在多少条目。

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

推荐阅读