suchen kann sagen, dass ich einen Ausschnitt aus einer Liste, die wie folgt aussieht:Ein nicht indexorientiert für eindeutige Werte zwischen zwei Listen in R
aaa[[1]]
# [1] "A5-5,73" "B3-4,73" "E3-8,73" "A1-8,73" "C1-7,73" "A1-2,73" "C3-2,73" "C1-1,73"
Lets sagen, dass ich mit einem Abschnitt habe eine andere Liste, die sieht wie folgt aus:
bbb[[1]]
# [1] "B3-4,73" "C3-2,73" "A5-5,73" "A1-8,73" "A1-2,73" "A1-5,73" "B1-1,73" "C1-4,73"
Man bedenke, dass ich jetzt
which(aaa[[1]]!= bbb[[1]])
laufen die
012.351 zurück# [1] 1 2 3 5 6 7 8
Dies ist technisch wahr, weil der Index [4]
das gleiche in beiden aaa
und bbb
Was ich zurück haben möchte ist:
# [1] "C1-7,73" "A1-2,73" "C1-1,73"
, weil diese die Werte von aaa
, die nicht in bbb
unabhängig von der Position sind. Ich würde auch zu einer Lösung offen, die nur eine Indexnummer zur Verfügung stellen würden, wie zum Beispiel:
# [1] 5 6 8
Hier ist ein reproduzierbares Beispiel:
aaa <- vector("list")
aaa[[1]] <- c("A5-5,73", "B3-4,73", "E3-8,73", "A1-8,73",
"C1-7,73", "A1-2,73", "C3-2,73", "C1-1,73")
bbb <- vector("list")
bbb[[1]] <- c("B3-4,73", "C3-2,73", "A5-5,73", "A1-8,73",
"A1-2,73", "A1-5,73", "B1-1,73", "C1-4,73")
Ich denke, Sie wollen 'setdiff()', wie in 'setdiff (aaa [[1]], bbb [[1]])' –
Und was Sie zurückgegeben möchten, stimmt nicht mit den Daten. 'E3-8,73' statt' A1-2,73', ja? – Aaron
Beide obigen Kommentare sind korrekt. Ich war nicht bewusst von 'setdiff' –