So möchten Sie Ihre Liste Namen haben:
NAME <- paste0("Degrees", 1:length(Degrees_df1))
Jede der folgenden Aussagen ist OK:
names(Degrees_df1) <- NAME
attr(Degrees_df1, "names") <- NAME
Degrees_df1 <- "names<-"(Degrees_df1, NAME)
Degrees_df1 <- setNames(Degrees_df1, NAME)
Degrees_df1 <- structure(Degrees_df1, names = NAME)
Aber ich denke, das Beste ist, Namen zu geben, wenn Sie die Liste erstellen. Wenn Sie zum Beispiel tun:
list(1, 2, 3, 4)
die resultierende Liste hat keine Namen. Wenn Sie das tun,
list(a = 1, b= 2, c = 3, d = 4)
die resultierende Liste hat Namen.
Wenn ich Paste-Funktion dort bewerbe ich bin immer Fehler wie folgt aus:
Fehler bei assign (Namen (paste0 ("Degrees_df", i)), paste0 ("Degrees", 1: Länge (get (paste0 ("Degrees_df". ungültiges erstes Argument
Sorry, ich wollten Sie Ihren Code innerhalb for-Schleife Paste-Funktion modifizieren
Sie möglicherweise benötigen diesen (nicht eff iziente):
df_i <- get(paste0("Degrees_df", i)) ## a local variable
names(df_i) <- paste0("Degrees", 1:length(df_i)) ## modify local variable
assign(paste0("Degrees_df", i), df_i) ## write back and update
oder (besser):
df_i <- get(paste0("Degrees_df", i)) ## a local variable
assign(paste0("Degrees_df", i),
setNames(df_i, paste0("Degrees", 1:length(df_i))))
# assign(paste0("Degrees_df", i),
# "names<-"(df_i, paste0("Degrees", 1:length(df_i))))
# assign(paste0("Degrees_df", i),
# structure(df_i, names = paste0("Degrees", 1:length(df_i))))
assign
wird verwendet Wert zuzuweisen (oder eine andere Variable) zu einer Variablen. Es sieht so aus, als ob Ihr Fehlercode versucht, Namensattribute zuzuweisen. Beachten Sie, dass die Namen einer liste/dat.frame "attribute" sind, keine Variable, Sie können also assign
nicht verwenden, um sie zu ändern.
Hallo @Zheyuan Li, wenn ich einfügen Funktion dort drüben bekomme ich Fehler wie folgt: Fehler beim Zuweisen (Namen (paste0 ("Degrees_df", i)), paste0 ("Grad", 1: Länge (get (paste0 ("Degrees_df",: ungültiges erstes Argument – anindya
Sorry @Zheyuan Li Ich wollte Ihren Code innerhalb von for loop mit Paste-Funktion ändern. Bitte helfen Sie mir, dies auch zu lösen .. – anindya
@ZheyuanLi; Ich denke, Ihre Bearbeitung sollte stärker haben Bedenken Sie, dass die Op ihren Workflow überdenken sollten, wenn sie es auf diese Weise versuchen. – user20650