我试图在R中完成此操作。第2,3和4列中的单元格包含大于10或“NA”的数字。由于这已经过滤了数据,我想与第5,6和7列中的单元格进行交叉检查。第5,6或7列中的数据点包含一些按字母顺序排列的注释。如果第2,3或4列中的单元格包含' NA',那么我想将第5,6或7列中的相应单元格值转换为' N'或者' NA'。
我的样本数据如下:
ID S1 S2 S3 S4 S5 S6
M1 11 20 NA C C C
M2 NA 123 21 T T R
M3 NA NA 27 A A M
M4 65 23 NA G G C
M5 12 NA 13 T G C
我想要的输出是::
ID S1 S2 S3 S4 S5 S6
M1 11 20 NA C C N
M2 NA 123 21 T N R
M3 NA NA 27 N N M
M4 65 23 NA G G N
M5 12 NA 13 T N C
提前致谢。 杰里
答案 0 :(得分:1)
你可以试试这个:
library(data.table)
data <- as.data.table(list(ID=c("M1","M2"), S1=c(11,NA), s4=c("C", "T")))
# ID S1 s4
#1: M1 11 C
#2: M2 NA T
data[, s4 := ifelse(is.na(S1), NA, s4)]
# ID S1 s4
#1: M1 11 C
#2: M2 NA NA