繁体   English   中英

如何循环以在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

如果有完全不同的方式来实现这一目标,请回答。

您是说要遍历变量并为每个变量制作频率表吗? 如果是这样,下面的代码可以。 简而言之, count_函数可以使用字符变量名称,而count可以使用“裸”变量名称。

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM