Ich habe einen (großen) Datenrahmen mit Variablen, die jeweils ein comment
Attribut haben.Zugreifen auf (Attribute von) einer Liste von Variablen aus einem Datenrahmen basierend auf einem Vektor
# Basic sample data
df <- data.frame(a = 1:5, b = 5:1, c = 5:9, d = 9:5, e = 1:5)
comment(df$a) <- "Some explanation"
comment(df$b) <- "Some description"
comment(df$c) <- "etc."
Ich mag würde die comment
Attribute für einige dieser Variablen sowie eine beleuchtete der möglichen Werte zu extrahieren.
So beginne ich durch die Liste der Variablen definieren ich entpacken:
variables_to_extract = c("a", "b", "e")
Ich würde normalerweise auf einer Teilmenge des Datenrahmens arbeiten, aber dann zugreifen kann ich nicht die Attribute (zB comment
) noch die Liste der möglichen Werte von jede Variable.
library(tidyverse)
df %>% select(one_of(variables_to_export)) %>% comment()
# accesses only the 'comment' attribute of the whole data frame (df), hence NULL
Ich habe auch versucht, durch df[[variables_to_export]]
zugreifen, aber es erzeugt einen Fehler ...
df[[variables_to_export]]
# Error: Recursive Indexing failed at level 2
Ich wollte alles in einem Datenrahmen extrahieren, sondern auch wegen der rekursiven Teilungsfehler, es doesn arbeite nicht.
meta <- data.frame(variable = variables_to_export,
description = comment(papers[[variables_to_export]]),
values = papers[[vairables_to_export]] %>%
unique() %>% na.omit() %>% sort() %>% paste(collapse = ", "))
# Error: Recursive Indexing failed at level 2
'Bibliothek (tidyverse) verwenden; df%>% select (one_of (variables_to_extract))%>% map (Kommentar) 'oder in der Basis,' lapply (df [, variables_to_extract], Kommentar) ' – alistaire