创建多个描述性表格(带循环)并在 R 中存储为数据帧
Creating multiple descriptive tables (with a loop) and storing as dataframes in R
我正在尝试创建一个简单的 'for loop' 以使用 R 生成一系列描述性 tables(保存为数据帧),但我正在努力这样做。
例如,我可以创建一个简单的描述性 table(称为 'Var_1_tab'),如下所示:
library(janitor)
Var_1<- c("a", "b", "b", "a", "b", "b", "b")
Var_2<- c("b", "b", "a", "a", "a", "b", "a")
Var_3<- c("c", "b", "a", "c", "c", "b", "a")
df<- data.frame(Var_1, Var_2, Var_3)
Var_1_tab<- df %>% janitor::tabyl(Var_1)
我想使用循环对我的数据框中的每一列进行排序,并为每一列生成相同的简单描述 table,将结果作为数据框存储在我的全局环境中。额外的好处是能够将每个数据框命名为 'Var_1_tab'、'Var_2_tab' 等,以便于参考。
有人可以帮忙吗?
谢谢!!!
tabyl
也可以使用带引号的列名。因此,我们遍历列名并将输出保存在 list
中
library(purrr)
library(dplyr)
df_lst <- map(names(df), ~ df %>%
janitor::tabyl(all_of(.x)))
names(df_lst) <- paste0(names(df), "_tab")
-输出
> df_lst
$Var_1_tab
Var_1 n percent
a 2 0.2857143
b 5 0.7142857
$Var_2_tab
Var_2 n percent
a 4 0.5714286
b 3 0.4285714
$Var_3_tab
Var_3 n percent
a 2 0.2857143
b 2 0.2857143
c 3 0.4285714
可以使用 $
或 [[
使用名称
提取列表元素
> df_lst[["Var_1_tab"]]
Var_1 n percent
a 2 0.2857143
b 5 0.7142857
如果我们需要在全局环境中创建对象(不推荐),请在命名的 list
上使用 list2env
list2env(df_lst, .GlobalEnv)
并检查对象
> Var_1_tab
Var_1 n percent
a 2 0.2857143
b 5 0.7142857
> Var_2_tab
Var_2 n percent
a 4 0.5714286
b 3 0.4285714
我正在尝试创建一个简单的 'for loop' 以使用 R 生成一系列描述性 tables(保存为数据帧),但我正在努力这样做。
例如,我可以创建一个简单的描述性 table(称为 'Var_1_tab'),如下所示:
library(janitor)
Var_1<- c("a", "b", "b", "a", "b", "b", "b")
Var_2<- c("b", "b", "a", "a", "a", "b", "a")
Var_3<- c("c", "b", "a", "c", "c", "b", "a")
df<- data.frame(Var_1, Var_2, Var_3)
Var_1_tab<- df %>% janitor::tabyl(Var_1)
我想使用循环对我的数据框中的每一列进行排序,并为每一列生成相同的简单描述 table,将结果作为数据框存储在我的全局环境中。额外的好处是能够将每个数据框命名为 'Var_1_tab'、'Var_2_tab' 等,以便于参考。
有人可以帮忙吗?
谢谢!!!
tabyl
也可以使用带引号的列名。因此,我们遍历列名并将输出保存在 list
library(purrr)
library(dplyr)
df_lst <- map(names(df), ~ df %>%
janitor::tabyl(all_of(.x)))
names(df_lst) <- paste0(names(df), "_tab")
-输出
> df_lst
$Var_1_tab
Var_1 n percent
a 2 0.2857143
b 5 0.7142857
$Var_2_tab
Var_2 n percent
a 4 0.5714286
b 3 0.4285714
$Var_3_tab
Var_3 n percent
a 2 0.2857143
b 2 0.2857143
c 3 0.4285714
可以使用 $
或 [[
使用名称
> df_lst[["Var_1_tab"]]
Var_1 n percent
a 2 0.2857143
b 5 0.7142857
如果我们需要在全局环境中创建对象(不推荐),请在命名的 list
list2env
list2env(df_lst, .GlobalEnv)
并检查对象
> Var_1_tab
Var_1 n percent
a 2 0.2857143
b 5 0.7142857
> Var_2_tab
Var_2 n percent
a 4 0.5714286
b 3 0.4285714