У меня есть data.frame в R (давайте использовать в качестве примера встроенный набор данных "mtcars"), и я хотел бы найти более эффективный способ создания второго data.frame, содержащего описания каждой переменной ( т.е. некоторые основные метаданные) следующим образом:
Variables Type Labels
mpg numeric Miles/(US) gallon
cyl numeric Number of cylinders
disp numeric Displacement (cu.in.)
hp numeric Gross horsepower
drat numeric Rear axle ratio
wt numeric Weight (1000 lbs)
qsec numeric 1/4 mile time
vs numeric Engine (0 = V-shaped, 1 = straight)
am numeric Transmission (0 = automatic, 1 = manual)
gear numeric Number of forward gears
carb numeric Number of carburetors
Приведенный ниже код указывает мой текущий метод получения data.frame с описаниями каждой переменной, включая имена переменных, типы элементов переменных и метки.
dat01 <- mtcars
Variables <- c(names(dat01))
#install.packages("Hmisc")
library(Hmisc)
var.labels = c(mpg="Miles/(US) gallon",
cyl="Number of cylinders",
disp="Displacement (cu.in.)",
hp="Gross horsepower",
drat="Rear axle ratio",
wt="Weight (1000 lbs)",
qsec="1/4 mile time",
vs="Engine (0 = V-shaped, 1 = straight)",
am="Transmission (0 = automatic, 1 = manual)",
gear="Number of forward gears",
carb="Number of carburetors")
label(dat01) <- as.list(var.labels[match(names(dat01), names(var.labels))])
Labels <- label(dat01)
Type <- c(mode(dat01$mpg),
mode(dat01$cyl),
mode(dat01$disp),
mode(dat01$hp),
mode(dat01$drat),
mode(dat01$wt),
mode(dat01$qsec),
mode(dat01$vs),
mode(dat01$am),
mode(dat01$gear),
mode(dat01$carb))
meta.df <- data.frame(Variables,
Type,
Labels)
print(meta.df, row.names = FALSE)
Помимо повышения эффективности моего сценария (в частности, я уверен, что существует более эффективный код, который я могу использовать для создания вектора «Тип»), мне также интересно услышать ваши предложения о том, как лучше обобщить этот скрипт, чтобы его можно было копировать / вставлять и применять к аналогично структурированным data.frames.