gpt4 book ai didi

r - 创建多个描述性表格(带循环)并在 R 中存储为数据帧

转载 作者:行者123 更新时间:2023-12-05 04:35:50 26 4
gpt4 key购买 nike

我正在尝试创建一个简单的“for 循环”以使用 R 生成一系列描述性表格(保存为数据帧),但我正在努力这样做。

例如,我可以像这样创建一个简单的描述表(称为“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)

我想使用循环对我的数据框中的每一列进行排序,并为每一列生成相同的简单描述表,将结果作为数据框存储在我的全局环境中。额外的好处是能够将每个数据框命名为“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

关于r - 创建多个描述性表格(带循环)并在 R 中存储为数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70960373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com