[英]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.