Я хотел бы создать статистические таблицы, описанные для моего набора данных, который представляет собой выборку со многими категориальными переменными, которые являются своего рода фильтром для вычисления средних значений и отклонений.
Вот пример для репликации:
# example
var1 <- rep (LETTERS [1: 2], 100)
var2 <- rep (c (0.1), 100)
country <- sample (c ("Country_A", "Country_B", "Country_C"), 100, replace = TRUE)
age <- round (runif (100, min = 21, max = 70), 0)
df <- as.data.frame (cbind (var1, var2, country, age))
df $ age <- as.numeric (df $ age)
mean <- aggregate (x = df $ age, by = list (df $ country, df $ var1), FUN = mean)
colnames (mean) [1] <- "Country"
colnames (mean) [3] <- "Age"
lenght <- aggregate (x = df $ age, by = list (df $ country, df $ var1), FUN = length)
colnames (lenght) [1] <- "Country"
colnames (lenght) [3] <- "Age_N"
df_table_var1 <- merge (mean, lenght, by = "Country", all = TRUE)
Однако я пытаюсь изменить этот код с помощью L oop так, чтобы это var1, могло быть var2, var3 .... генерация отдельных объектов. Но это не очень хорошо. База данных не обширна, поэтому вы не так озабочены использованием For
for (i in 3: 4) {
paste0 ("x_media", names (df) [i]) <- aggregate (x = df $ Age, by = list ((df) [i], df $ var), FUN = mean)
paste0 ("x_sd", names (df) [i]) <- aggregate (x = df $ Age, by = list ((df) [i], df $ var), FUN = sd)
}
. Я считаю, что было бы проще создать функцию, но я не смог сделать это, выделив имена переменных.