Meine Frage ist ähnlich wie How to add variable key/value pair to list object?. Ich möchte einem Listenelement einen veränderbaren Namen entsprechend dem Wert einer Variablen geben. Aber ich möchte nicht umbenennen die Liste, aber nennen Sie es richtig direkt bei der Initialisierung (Ich möchte eine ein Liner) ohne Verwendung von "The evil trio (eval, parse, paste)".veränderbare Benennungslistenelemente bei der Initialisierung ohne eval (parse (paste()))
Das „Problem“, wie list
Arbeiten ist, dass
key <- "width"
my_list <- list(key = 32)
Namen des Element (verständlicherweise) "key"
und nicht "width"
, auch wenn key <- "width"
und man ist bestrebt, das gleiche Ergebnis wie my_list <- list(width = 32)
zu haben. Die "böse Trio-Lösung" wäre my_list <- eval(parse(text = paste("list(", key, "=32)")))
, aber ich suche eine elegantere Lösung wie list(eval(key) = 32)
(was nicht funktioniert).
Ich habe meine Antwort gelöscht, da sie bereits in der Frage verlinkt ist (http://StackOverflow.com/a/31298923/3521006). IMO, es ist die beste Option –
@docendodiscimus Im Allgemeinen stimme ich Ihnen zu, aber leider hat diese nette Antwort (mit meinem upvote) nur 3 Stimmen und ist nicht direkt zu erkennen, als eine geeignete Antwort (wie Assad Ebrahim spricht über ein "Hash "und sein Code verwendet nicht den Code aus dem OP." Also zögern Sie nicht, Ihre Antwort erneut zu posten (ich werde dann natürlich meine eigene Antwort löschen). – Qaswed