如何在 R 中循环创建和显示多个数据框

How to loop to create and display multiple data frames in R

我想为我从给定数据框中指定的一组变量创建相对频率摘要。我有:

library(tidyverse)
library(psych)

mtcars %>%
    count(mpg) %>%
    mutate(freq = n / sum(n)) %>%
    arrange(desc(n)) %>%
    headTail(top = 5, bottom = 5)

mtcars %>%
    count(disp) %>%
    mutate(freq = n / sum(n)) %>%
    arrange(desc(n)) %>%
    headTail(top = 5, bottom = 5)

这显示了每个数据框,这就是我想要的:

如何创建循环以便指定变量列表并从中创建多个数据框。例如:

my_variables <- c(mpg, dipl)

# some function to make multiple data frames

如果有完全不同的方法来实现这一点,请回答。

您的意思是要循环变量并使每个变量的频率都像上面那样 table 吗?如果是这样,下面的代码就可以了。简而言之,count_函数可以取字符变量名,而count可以取"naked"变量名。

library(tidyverse)
library(psych)

make_freq_data <- function(name) {
  mtcars %>%
    count_(name) %>%
    mutate(freq = n / sum(n)) %>%
    arrange(desc(n)) %>%
    headTail(top = 5, bottom = 5)
}

my_variables <- c("mpg", "disp")
lapply(my_variables, make_freq_data)