在R语言中基于列计数创建Yes/No指标列的技术需求
用R的mutate函数新增判断列的解决方法
首先构造和你提供的表格一致的示例数据框:
df <- data.frame( a = c(0, 0, 1, 0, 0), b = c(1, 1, 1, 1, 1), c = c(0, 1, 1, 0, 0), d = c(1, 0, 1, 1, 1), e = c(1, 1, 1, 1, 1), f = c(0, 0, 0, 0, 0), G = c(0, 0, 0, 0, 0) )
接下来使用dplyr包的mutate函数,结合rowSums和ifelse实现需求:
library(dplyr) df <- df %>% mutate( # 计算每行a到G列的和,根据条件标记yes/no flag = ifelse(rowSums(select(., a:G)) > 3, "yes", "no") )
代码解释
select(., a:G):选中数据框中从a到G的所有目标列rowSums():逐行计算选中列的数值总和ifelse():判断每行总和是否大于3,返回对应的"yes"或"no"
最终结果
运行后的数据框如下:
a b c d e f G flag 1 0 1 0 1 1 0 0 no 2 0 1 1 0 1 0 0 no 3 1 1 1 1 1 0 0 yes 4 0 1 0 1 1 0 0 no 5 0 1 0 1 1 0 0 no
内容的提问来源于stack exchange,提问作者Glen P Janson
相关产品推荐
相关产品推荐

