r - 从多个列中选择最高值,其中许多列是 R 中的 NA
问题描述
ID diagnosis_1 diagnosis_2 diagnosis_3 diagnosis_4 diagnosis_5 diagnosis_6 diagnosis_7 diagnosis_8 diagnosis_9 diagnosis_10 diagnosis_11 diagnosis_12 diagnosis_13 age
1 123 1 3 NA NA NA NA NA NA NA NA NA NA NA 54
2 5345 2 3 1 NA NA NA NA NA NA NA NA NA NA 65
3 234 3 NA NA NA NA NA NA NA NA NA NA NA NA 23
4 453 4 1 NA NA NA NA NA NA NA NA NA NA NA 22
5 3656 5 NA NA NA NA NA NA NA NA NA NA NA NA 33
6 345 1 4 3 1 NA NA NA NA NA NA NA NA NA 77
我想创建另一列,其中每行选择“诊断”列的最大值。理想情况下使用基础 R
期望的结果将是一个额外的列 c
解决方案
你可以试试这个:
#Names
nvec <- which(grepl('diagnosis',names(df)))
#Var
df$c <- apply(df[,nvec],1,max,na.rm=T)
ID diagnosis_1 diagnosis_2 diagnosis_3 diagnosis_4 diagnosis_5 diagnosis_6 diagnosis_7 diagnosis_8
1 123 1 3 NA NA NA NA NA NA
2 5345 2 3 1 NA NA NA NA NA
3 234 3 NA NA NA NA NA NA NA
4 453 4 1 NA NA NA NA NA NA
5 3656 5 NA NA NA NA NA NA NA
6 345 1 4 3 1 NA NA NA NA
diagnosis_9 diagnosis_10 diagnosis_11 diagnosis_12 diagnosis_13 age c
1 NA NA NA NA NA 54 3
2 NA NA NA NA NA 65 3
3 NA NA NA NA NA 23 3
4 NA NA NA NA NA 22 4
5 NA NA NA NA NA 33 5
6 NA NA NA NA NA 77 4
#Data
df <- structure(list(ID = c(123L, 5345L, 234L, 453L, 3656L, 345L),
diagnosis_1 = c(1L, 2L, 3L, 4L, 5L, 1L), diagnosis_2 = c(3L,
3L, NA, 1L, NA, 4L), diagnosis_3 = c(NA, 1L, NA, NA, NA,
3L), diagnosis_4 = c(NA, NA, NA, NA, NA, 1L), diagnosis_5 = c(NA,
NA, NA, NA, NA, NA), diagnosis_6 = c(NA, NA, NA, NA, NA,
NA), diagnosis_7 = c(NA, NA, NA, NA, NA, NA), diagnosis_8 = c(NA,
NA, NA, NA, NA, NA), diagnosis_9 = c(NA, NA, NA, NA, NA,
NA), diagnosis_10 = c(NA, NA, NA, NA, NA, NA), diagnosis_11 = c(NA,
NA, NA, NA, NA, NA), diagnosis_12 = c(NA, NA, NA, NA, NA,
NA), diagnosis_13 = c(NA, NA, NA, NA, NA, NA), age = c(54L,
65L, 23L, 22L, 33L, 77L)), row.names = c(NA, -6L), class = "data.frame")
推荐阅读
- mysql - 如何查询具有单引号的 json 数据类型列
- mongodb - 有没有更快的方法来克隆有限的 mongo 数据库
- ios - 在 tableView didSelectRowAt indexPath iOS 之前准备 segue 调用
- html - a href 不适用于带有 :after content:''" 的图像;
- c# - 当 SetParent() 不起作用时如何在面板中运行外部应用程序 C#
- visual-studio-code - VS Code Elixir F2“重命名符号”不起作用
- node.js - 服务器 - 带有节点 js 的客户端示例
- python-3.x - 我如何去匹配这些模糊图像的模板?
- bash - 解析顺序和展开顺序的区别
- oracle - 加载共享库 libresolv.so.2 时出错:没有这样的文件或目录(/lib/libclntsh.so 需要)