Ho un dataframe, viaggio:La condizione ha lunghezza> 1 e solo il primo elemento sarà utilizzato
> head(trip.mutations)
Ref.y Variant.y
1 T C
2 G C
3 A C
4 T C
5 C A
6 G A
voglio aggiungere una terza colonna, mutType, che segue queste regole:
for (i in 1:nrow(trip)) {
if(trip$Ref.y=='G' & trip$Variant.y=='T'|trip$Ref.y=='C' & trip$Variant.y=='A') {
trip[i, 'mutType'] <- "G:C to T:A"
}
else if(trip$Ref.y=='G' & trip$Variant.y=='C'|trip$Ref.y=='C' & trip$Variant.y=='G') {
trip[i, 'mutType'] <- "G:C to C:G"
}
else if(trip$Ref.y=='G' & trip$Variant.y=='A'|trip$Ref.y=='C' & trip$Variant.y=='T') {
trip[i, 'mutType'] <- "G:C to A:T"
}
else if(trip$Ref.y=='A' & trip$Variant.y=='T'|trip$Ref.y=='T' & trip$Variant.y=='A') {
trip[i, 'mutType'] <- "A:T to T:A"
}
else if(trip$Ref.y=='A' & trip$Variant.y=='G'|trip$Ref.y=='T' & trip$Variant.y=='C') {
trip[i, 'mutType'] <- "A:T to G:C"
}
else if(trip$Ref.y=='A' & trip$Variant.y=='C'|trip$Ref.y=='T' & trip$Variant.y=='G') {
trip[i, 'mutType'] <- "A:T to C:G"
}
}
ma ho l'errore:
Warning messages:
1: In if (trip$Ref.y == "G" & trip$Variant.y == "T" | trip$Ref.y == ... :
the condition has length > 1 and only the first element will be used
non credo che le mie dichiarazioni logiche dovrebbero essere la produzione di vettori, ma forse io' Mi manca qualcosa. viaggio $ mutType dovrebbe finire per assomigliare a questo:
mutType
A:T to G:C
G:C to C:G
A:T to C:G
A:T to G:C
G:C to T:A
G:C to A:T
Qualcuno può individuare ciò che è sbagliato qui? Ho bisogno || invece di | Forse?
Grazie, che fa il trucco – soosus