【问题标题】:Applying for loop in R to compute frequency distribution在 R 中应用 for 循环来计算频率分布
【发布时间】:2014-09-23 08:36:23
【问题描述】:

假设我有一个包含多个分类特征的数据框。如何使用 for 循环而不是查找单个分布来计算频率分布表

我使用了以下代码:

data
         a   b  c  
1  class 1   1  M 
2  class 2   0  F 
3  class 3   0  M 
4  class 1   1  F    
5  class 1   1  F
6  class 2   1  M    
7  class 1   0  F   
8  class 1   0  F 
9  class 2   1  M    
10 class 2   1  M 
11 class 3   1  F    
12 class 3   0  F    

>b<-data$b
>b.freq<-table(b)
>b.freq

0  1
5  7

我想用 for 循环对更大集合中的所有变量执行此操作。

请帮忙

谢谢

【问题讨论】:

    标签: r rstudio


    【解决方案1】:

    如果要将table函数应用于所有列,可以使用lapply

    > lapply(data, table)
    $a
    
    class 1 class 2 class 3 
          5       4       3 
    
    $b
    
    0 1 
    5 7 
    
    $c
    
    F M 
    7 5 
    

    更新:如何创建绘图:

    par(mfrow = c(1, length(data))); 
    lapply(data, function(x) barplot(table(x)))
    

    【讨论】:

    • 谢谢你 Sven :) ...是否可以同时绘制这些分布?
    • @user3718501 你想让它们出现在一个情节中吗?
    • 并排在一个无花果中
    • @user3718501 你可以做for(i in data) print(table(i))
    • @user3718501 for(i in names(data)) {cat(i); print(table(data[[i]]))}
    猜你喜欢
    • 2021-01-30
    • 1970-01-01
    • 2016-10-30
    • 2019-11-30
    • 1970-01-01
    • 2020-07-07
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多