Ich habe diesen Datenrahmen mydf
. Die Spalte nucleotide
könnte Buchstaben "A", "T", "G", "C" haben. Ich möchte den Buchstaben A zu T, C zu G, G zu C und T zu A ändern, wenn die Spalte strand
'-' ist. Wie mache ich es?Wie konvertiert man Werte in Spaltenvergleichsmuster in R
mydf<- structure(list(seqnames = structure(c(1L, 1L, 1L, 1L), .Label = c("chr1",
"chr2", "chr3", "chr4", "chr5", "chr6", "chr7", "chr8", "chr9",
"chr10", "chr11", "chr12", "chr13", "chr14", "chr15", "chr16",
"chr17", "chr18", "chr19", "chr20", "chr21", "chr22", "chrX",
"chrY", "chrM"), class = "factor"), pos = c(115258748, 115258748,
115258748, 115258748), strand = structure(c(1L, 2L, 1L, 2L), .Label = c("+",
"-", "*"), class = "factor"), nucleotide = structure(c(2L, 2L,
2L, 2L), .Label = c("A", "C", "G", "T", "N", "=", "-"), class = "factor")), .Names = c("seqnames",
"pos", "strand", "nucleotide"), row.names = c(NA, 4L), class = "data.frame")
Ergebnis
seqnames pos strand nucleotide
1 chr1 115258748 + C
2 chr1 115258748 - G
3 chr1 115258748 + C
4 chr1 115258748 - G
'chartr' ist für dieses Szenario ideal, aber eine Lookup-Tabelle von alten und neuen Werten zu schaffen ist wahrscheinlich die effizienteste Methode sonst - http://stackoverflow.com/questions/18456968/how-do-i -map-a-vector-of-values-to-another-vector-with-my-own-custom-map-in-r/18457055 # 18457055 Also, 'mit (mydf, ifelse (strang ==" - ", charter ("ACGT", "TGCA", Nukleotid), Nukleotid)) würde das Überschreiben einer Variablen vermeiden. – thelatemail