[英]R: categorize obtain a new table
我有这样一张表,有 3 个列 rs10330、rs18976 和 rs749。 我想获取最后一列identifiedID,哪一行在每列中有AG或GG,GT或TT,AT或TT之一,identifiedID将为1,并且有两个identifiedID将为2。至于第1行,有3列没有AG或GG,GT或TT,AT或TT,因此,identifiedID为0。为了获得identifiedID,代码是什么?
datmp <- data.frame(rs10330=c('AA','AG','GG','AG','AA'),
rs18976=c('GG','GT','GT','GG','GG'),
rs7498=c( 'AA','AT','TT','AT','TT'))
identifiedID <- c(0,3,3,2,1)
datmp2 <- data.frame(datmp,identifiedID)
一个非常冗长的解决方案是
datmp %>%
mutate(identifiedID = rs10330 %in% c("AG", "GG") +
rs18976 %in% c("GT", "TT") +
rs7498 %in% c("AT", "TT"))
# rs10330 rs18976 rs7498 identifiedID
#1 AA GG AA 0
#2 AG GT AT 3
#3 GG GT TT 3
#4 AG GG AT 2
#5 AA GG TT 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.