如何在 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)
我想为我从给定数据框中指定的一组变量创建相对频率摘要。我有:
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)