Sagen, ich habe 2 (oder mehr) Vektoren:erstellen verschachtelte Liste von 2 oder mehr Vektoren in R?
v1 <- letters[1:2]
v2 <- letters[24:26]
> v1
[1] "a" "b"
> v2
[1] "x" "y" "z"
Wie könnte ich eine verschachtelte Liste wie diese programmatisch konstruieren, die Listen von allen Kombinationen meiner Eingangsvektoren enthält? Edit: Ich möchte das ohne ineffiziente Looping-Strukturen machen.
> l1 <- list(list(v1[1], v2[1]), list(v1[1], v2[2]),
list(v1[1], v2[3]), list(v1[2], v2[1]),
list(v1[2], v2[2]), list(v1[2], v2[3]))
> str(l1)
List of 6
$ :List of 2
..$ : chr "a"
..$ : chr "x"
$ :List of 2
..$ : chr "a"
..$ : chr "y"
$ :List of 2
..$ : chr "a"
..$ : chr "z"
$ :List of 2
..$ : chr "b"
..$ : chr "x"
$ :List of 2
..$ : chr "b"
..$ : chr "y"
$ :List of 2
..$ : chr "b"
..$ : chr "z"
Gibt es einen bestimmten Grund, warum Sie dies in einer Liste im Gegensatz zu einem Datenrahmen benötigen? –
Ja, möchte ich in Verbindung mit do.call verwenden: lapply (my_nested_list, do.call, what = my_function). – FB001
Können Sie das klären? Gibt es eine Eigenschaft der Funktion, die verhindert, dass sie mit einem Datenrahmen verwendet wird? –