使用 R 中的循环创建带有计算的聚合表

cully_π

想知道如何在 R 中创建一个包含不同计算结果的表。这是一个使用 mtcars df 的示例


# Load tidyverse
library(tidyverse)

# Select only cyl vs and am from mtcars for simplicity
mt_select <- select(mtcars, c(cyl, vs, am))


# Here is the table I wish to make using some type of looping function
# (I have like 40 variables in actual dataset)
freq_table <- mt1 %>% group_by(cyl) %>% 
  summarise(n = n(),
            vs_sum = sum(vs),
            vs_perc = sum(vs)/n*100,
            am_sum = sum(am),
            am_perc = sum(am)/n*100)
print(freq_table)

这是我的尝试。我无法弄清楚的主要问题:

  1. 包括“0”答案的总和,
  2. 我不知道如何添加百分比列
  3. 不知道如何将这些全部合并到一张表中
# make a vector to loop through
mt_vars <- names(mt_select)

# Loop to make tables
for (i in mt_vars){
  mt_select %>% 
    group_by(cyl) %>% 
    count_(i) %>%
    print()
}

几个月来一直试图弄清楚如何制作这个,但总是决定我不需要桌子或其他东西。任何帮助是极大的赞赏!!

石灰

您没有提供预期的输出,但我认为解决您的问题的关键可能是将您的数据转换为长格式。这可能会让你做你想做的事,而不需要任何循环。例如,mtcars作为输入:

library(tidyverse)

mtcars %>% 
  pivot_longer(everything()) %>% 
  group_by(name) %>% 
  summarise(
    n=n(),
    valueSum=sum(value),
    valuePct=valueSum/(n*100)
  )
# A tibble: 11 × 4
   name      n valueSum valuePct
   <chr> <int>    <dbl>    <dbl>
 1 am       32      13   0.00406
 2 carb     32      90   0.0281 
 3 cyl      32     198   0.0619 
 4 disp     32    7383.  2.31   
 5 drat     32     115.  0.0360 
 6 gear     32     118   0.0369 
 7 hp       32    4694   1.47   
 8 mpg      32     643.  0.201  
 9 qsec     32     571.  0.178  
10 vs       32      14   0.00438
11 wt       32     103.  0.0322 

这接近你想要的吗?如果您只想处理列的子集,请everything()filter旋转之后或select旋转之前替换您需要的内容。

另外,我不确定您要计算的百分比是多少。

valuename是 和 的names_to默认values_topivot_longer()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用带有布尔值的查找表计算R中的变量

R-使用带有for循环的其他变量在数据框中创建变量

结合使用带有colMeans和colVar的summary_all在R中创建数据透视表

如何使用SQL Server 2008 R2创建带有一个列的表,该表将自动计算另一列的总和?

使用R中的传单创建带有标记的假地图

使用R中具有值的变量集创建表

使用data.table编写带有聚合的R函数

使用for循环在数据框中创建新列以计算R中的值?

使用循环创建带有ICC结果的表

使用r中列的增量创建for循环

for循环,使用“ <-”在R中创建变量

使用R创建用于计算的循环函数并保存结果

使用lapply中的函数创建新的聚合R数据帧

如何使用R中的查找表和公式创建计算列?

如何使用带有特定行和列的循环读取R中的多个xlsx文件

在 R 中使用循环创建、标记和导出表

在 R 中使用 for 循环创建不同的数据表

使用R中的循环在现有数据框中创建列

R:使用R更新SQL表循环

如何通过使用带有R的.xls文件中的特定行来创建线图?

使用R中的for循环计算数据帧的方差?

使用r中的循环函数计算每天的常数值?

尝试使用 R 中的 for 循环进行简单的迭代计算

如何在所有列中使用带有href的表的“ rvest”来刮除R中的HTML表?

如何使用带有 R (rvest) 的 selectorgadget 抓取 .dpbox 表?

在 R 中创建一个循环来计算不同表中特定列的词频

使用R中的循环创建功能列表

使用 igraph 在 R 中创建循环图或邻接矩阵?

使用for循环在R中创建字符串向量