示例数据

df <- diag(1:8) %>% 
  as_tibble() %>%  
  mutate(A = c(10, 5, 11, 4, 6, 9, 65, 8))

# A tibble: 8 x 9
     V1    V2    V3    V4    V5    V6    V7    V8     A
  <int> <int> <int> <int> <int> <int> <int> <int> <dbl>
1     1     0     0     0     0     0     0     0    10
2     0     2     0     0     0     0     0     0     5
3     0     0     3     0     0     0     0     0    11
4     0     0     0     4     0     0     0     0     4
5     0     0     0     0     5     0     0     0     6
6     0     0     0     0     0     6     0     0     9
7     0     0     0     0     0     0     7     0    65
8     0     0     0     0     0     0     0     8     8

所需输出为

# A tibble: 8 x 10
     V1    V2    V3    V4    V5    V6    V7    V8     A result
  <int> <int> <int> <int> <int> <int> <int> <int> <dbl> <lgl> 
1     1     0     0     0     0     0     0     0    10 FALSE 
2     0     2     0     0     0     0     0     0     5 TRUE  
3     0     0     3     0     0     0     0     0    11 FALSE 
4     0     0     0     4     0     0     0     0     4 TRUE  
5     0     0     0     0     5     0     0     0     6 TRUE  
6     0     0     0     0     0     6     0     0     9 FALSE 
7     0     0     0     0     0     0     7     0    65 FALSE 
8     0     0     0     0     0     0     0     8     8 TRUE

和/或...A在任何其他列中取非零值,因此输出为:

# A tibble: 8 x 9
     V1    V2    V3    V4    V5    V6    V7    V8     A
  <int> <int> <int> <int> <int> <int> <int> <int> <int>
1     1     0     0     0     0     0     0     0     1
2     0     2     0     0     0     0     0     0     2
3     0     0     3     0     0     0     0     0     3
4     0     0     0     4     0     0     0     0     4
5     0     0     0     0     5     0     0     0     5
6     0     0     0     0     0     6     0     0     6
7     0     0     0     0     0     0     7     0     7
8     0     0     0     0     0     0     0     8     8

如何用tidyverse实现这一点?

推荐答案

你可以试试

library(dplyr)
df %>%
  mutate(result = rowSums(across(everything() & - "A", ~A %in% .x)) > 0)

     V1    V2    V3    V4    V5    V6    V7    V8     A result
  <int> <int> <int> <int> <int> <int> <int> <int> <dbl> <lgl> 
1     1     0     0     0     0     0     0     0    10 FALSE 
2     0     2     0     0     0     0     0     0     5 TRUE  
3     0     0     3     0     0     0     0     0    11 FALSE 
4     0     0     0     4     0     0     0     0     4 TRUE  
5     0     0     0     0     5     0     0     0     6 TRUE  
6     0     0     0     0     0     6     0     0     9 FALSE 
7     0     0     0     0     0     0     7     0    65 FALSE 
8     0     0     0     0     0     0     0     8     8 TRUE  

如果以开始

     V1    V2    V3    V4    V5    V6    V7    V8     A
  <int> <int> <int> <int> <int> <int> <int> <int> <dbl>
1     1     0     0     0     0     0     0     0    10
2     0     2     0     0     0     0     0     0     5
3     0     0     3     0     0     0     0     0    11
4     0     0     0     4     0     0     0     0     4
5     0     0     0     0     5     0     0     0     6
6     0     0     0     0     0     6     0     0     9
7     0     0     0     0     0     0     7     0    65
8     0     0     0     0     0     0     0     8     8

然后

df %>%
  mutate(A = rowSums(.) - A)

如果以开始

     V1    V2    V3    V4    V5    V6    V7    V8
  <int> <int> <int> <int> <int> <int> <int> <int>
1     1     0     0     0     0     0     0     0
2     0     2     0     0     0     0     0     0
3     0     0     3     0     0     0     0     0
4     0     0     0     4     0     0     0     0
5     0     0     0     0     5     0     0     0
6     0     0     0     0     0     6     0     0
7     0     0     0     0     0     0     7     0
8     0     0     0     0     0     0     0     8

然后

df %>%
  mutate(A = rowSums(.))

R相关问答推荐

如何从其他前面列中减go 特定列的平均值?

使用ggcorrplot在相关性矩阵上标注supertitle和index标签

按R中的组查找相邻列的行累积和的最大值

如何利用模型函数在格图中添加双曲/指数曲线

如何在编辑列时更新可编辑数据表,并使用该表在Shiny中执行连续计算

如何在geom_col中反转条

如何同时从多个列表中获取名字?

找出二叉树中每个 node 在R中的深度?

仅在Facet_WRAP()中的相应方面包含geom_abline()

如何将网站图像添加到带有极坐标的面包裹条形图?

将多个列值转换为二进制

如何使用前缀作为匹配来连接数据帧?

WRS2包中带有bwtrim的简单ANOVA抛出错误

如何删除R中除数字元素以外的所有元素

仅当后续值与特定值匹配时,才在列中回填Nas

如何计算每12行的平均数?

多元正态分布的计算

有没有办法将基于每个值中出现的两个关键字或短语的字符串向量重新编码为具有这两个值的新向量?

主题(Legend.key=Element_RECT(Fill=&Quot;White&Quot;))不起作用

R try Catch in the loop-跳过缺少的值并创建一个DF,显示跳过的内容