I am working in R

编辑:希望得到dplyr的建议

sample data:

df <- data.frame(col1 = c(TRUE, TRUE, NA, NA), 
                 col2 = c(FALSE,  TRUE, FALSE, NA), 
                 col3 = c(NA, TRUE, NA, TRUE))

print(df)

col1 col2 col3
TRUE FALSE NA
TRUE TRUE TRUE
NA FALSE NA
NA NA TRUE

Desired outcome

我希望有一种方法来判断Col1--&gt;col3是否都是真的,而不考虑Nas.

col1 col2 col3 assessment
TRUE FALSE NA FALSE
TRUE TRUE TRUE TRUE
NA FALSE NA FALSE
NA NA TRUE TRUE

推荐答案

dplyr或者用rowwise

df %>% 
  rowwise() %>% 
  mutate(assessment = all(across(everything()), na.rm=T)) %>% 
  ungroup()
# A tibble: 4 × 4
  col1  col2  col3  assessment
  <lgl> <lgl> <lgl> <lgl>     
1 TRUE  FALSE NA    FALSE     
2 TRUE  TRUE  TRUE  TRUE      
3 NA    FALSE NA    FALSE     
4 NA    NA    TRUE  TRUE 

或者使用pick,谢谢@r2evans

mutate(df, assessment = apply(pick(col1:col3), 1, \(x) all(x, na.rm = TRUE)))
  col1  col2 col3 assessment
1 TRUE FALSE   NA      FALSE
2 TRUE  TRUE TRUE       TRUE
3   NA FALSE   NA      FALSE
4   NA    NA TRUE       TRUE

使用base R,使用all

cbind(df, assessment = apply(df, 1, \(x) all(x, na.rm=T)))
  col1  col2 col3 assessment
1 TRUE FALSE   NA      FALSE
2 TRUE  TRUE TRUE       TRUE
3   NA FALSE   NA      FALSE
4   NA    NA TRUE       TRUE

R相关问答推荐

获取列中值更改的行号

迭代通过1个长度的字符串长字符R

标识R中多个列中缺少的唯一值

如何在观测缺失的地方添加零

将文件保存到新文件夹时,切换r设置以不必创建目录

如何得到每四个元素向量R?

如何通过ggplot2添加短轴和删除长轴?

Data.table';S GForce-将多个函数应用于多列(带可选参数)

在gggraph中显示来自不同数据帧的单个值

'使用`purrr::pwalk`从嵌套的嵌套框架中的列表列保存ggplots时出现未使用的参数错误

多元正态分布的计算

是否有可能从边界中找到一个点值?

如何在使用因子时获得Sankey图的Scale_Fill_Viridis的全范围

避免在图例中显示VLINS组

如何根据其他列中的两个条件来计算数据帧中的行之间的差异?

GOGPLATE geom_boxploy色彩疯狂

策略表单连接两个非常大的箭头数据集,而不会 destruct 内存使用

从矩阵创建系数图

将日期列从字符转换为日期得到的结果是NAS

R:部分修改矩阵对角线的有效方法