我有一張如下表格。我喜歡根據與第三列的比較來替換每個樣本值,並用(0,1,2,3)對每個值進行編碼。例如,如果每行中的樣本值= REF_REF - > 1;如果每行中的樣本值= REF_ALT - > 2;如果每行中的樣本值= ALT_ALT - > 3和用於0/0 - > 0用列的值替換每行的值?
REF_REF REF_ALT ALT_ALT sample1 sample2 sample3
A/A A/G G/G 0/0 A/G G/G
T/T T/C C/C T/T T/C T/C
C/C C/G G/G 0/0 C/G C/G
我喜歡讓一個表等作爲:
REF_REF REF_ALT ALT_ALT sample1 sample2 sample3
A/A A/G G/G 0 2 3
T/T T/C C/C 1 2 2
C/C C/G G/G 0 2 2
另外,我用這個命令,但不行。
l=c()
for (i in seq_along(data))
{
data=data[1,]
Ref_Ref=data$Ref_Ref
Alt_Alt=data$Ref_Ref
Ref_Alt=data$Ref_Alt
with(data[], ifelse(data == Ref_Ref, 1, ifelse(data == Alt_Alt, 3,
if((data==Ref_Alt) 2))))
if(data=Ref_Ref, data=1)
l[1,]=if(data==Ref_Ref, 1)
l[1] <- if (data %in% data$Ref_Ref) 1 else if (data %in% data$Alt_Alt) 3 else if (data %in% data$Alt_Alt) 2 else 0
}
任何你自己試過的東西?爲什麼它不起作用? – Heroka
升= C() 爲(i的seq_along(數據)) { 數據=數據[1,] Ref_Ref =數據$ Ref_Ref Alt_Alt =數據$ Ref_Ref Ref_Alt =數據$ Ref_Alt 與(數據[] ,ifelse(data == Ref_Ref,1,ifelse(data == Alt_Alt,3,if((data == Ref_Alt)2)))) if(data = Ref_Ref,data = 1) l [1,] =如果(data == Ref_Ref,1) l [1] < - if(data%in%data $ Ref_Ref)1 else if(data%in%data $ Alt_Alt)3 else if(data%in%data $ Alt_Alt )2 else 0 } – star
你可以把它放在問題上嗎?不要在評論中提供額外的信息。 – Heroka