我想将na.omit(数据)用于以下示例数据集,但是在条件下,只有当它们存在时才会删除带有NAs的行,比如说"超过30%"的列.
数据:
C1 C2 C3 C4 C5
Gene1 0.07 NA 0.05 0.07 0.07
Gene2 0.2 0.18 0.16 0.15 0.15
Gene3 NA 0.93 0.9 NA 0.92
Gene4 0.32 0.05 0.12 0.13 0.05
Gene5 0.44 0.53 0.46 0.03 0.47
Gene6 NA 0.34 NA 0.8 NA
Gene7 0.49 0.55 0.67 0.49 0.89
Gene8 0.25 NA 0.49 NA NA
Gene9 0.1 0.1 0.05 NA 0.09
Run Code Online (Sandbox Code Playgroud)
因此生成的文件应如下所示:
C1 C2 C3 C4 C5
Gene1 0.07 NA 0.05 0.07 0.07
Gene2 0.2 0.18 0.16 0.15 0.15
Gene4 0.32 0.05 0.12 0.13 0.05
Gene5 0.44 0.53 0.46 0.03 0.47
Gene7 0.49 0.55 0.67 0.49 0.89
Gene9 0.1 0.1 0.05 NA 0.09
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
您可以根据NA值的行总和进行子集化:
test[!rowSums(is.na(test)) > ncol(test)*.3,]
C1 C2 C3 C4 C5
Gene1 0.07 NA 0.05 0.07 0.07
Gene2 0.20 0.18 0.16 0.15 0.15
Gene4 0.32 0.05 0.12 0.13 0.05
Gene5 0.44 0.53 0.46 0.03 0.47
Gene7 0.49 0.55 0.67 0.49 0.89
Gene9 0.10 0.10 0.05 NA 0.09
Run Code Online (Sandbox Code Playgroud)