且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

用 1 替换各个列中的多个不同字符串,并用 dplyr 中的计数改变一个新列

更新时间:2023-12-03 19:16:58

df <- read.table(textConnection('id  Disease1 Disease2 Disease3
01  disease1  NA      disease3
02  NA       disease2 NA
03  disease1 disease2 NA'),header=T)

library(dplyr)

df %>%
rowwise() %>%
mutate(Total_diseases=sum(!is.na(across(Disease1:Disease3)))) %>%
ungroup

它使用 accross 函数检查从疾病 1 到疾病 3.

it checks from Disease1 to Disease3 with accross function.

输出;

     id Disease1 Disease2 Disease3 Total_diseases
  <int> <fct>    <fct>    <fct>             <int>
1     1 disease1 NA       disease3              2
2     2 NA       disease2 NA                    1
3     3 disease1 disease2 NA                    2