【问题标题】:adding the frequency column in R without using dyplr在不使用 dplyr 的情况下在 R 中添加频率列
【发布时间】:2023-02-13 20:08:17
【问题描述】:

我有一个“宽”数据集,对于每个观察,我从一堆分类变量中测量一个值。它是这样呈现的:

V1 V2 V3
a z f
a z f
b y g
b y g
a y g
b y f

这意味着 V1 有两个类别“a”和“b”,V2 有两个类别“z”和“y”,依此类推。但是假设我有 30 个变量(一个相当大的数据集)。

我想获得这种形式的数据集

V1 V2 V3 Freq
a z f 2
b y g 2
a y g 1
b y f 1

我怎样才能在R中得到它?对于较小的数据集,我使用 transform(table(data.frame(data))) 但它不适用于较大的数据集,因为它需要构建巨大的表。有人可以帮忙吗?

我想获得一个不依赖于变量名称的“通用”代码,因为我将在函数中使用它。而且,由于数据集很大,我更喜欢在没有函数表的情况下进行。

谢谢

【问题讨论】:

    标签: r datatables frequency


    【解决方案1】:

    在 base R 中,interaction

    as.data.frame(table(interaction(df, sep = "", drop = TRUE)))
    

    或者,使用table

    subset(data.frame(table(df)), Freq > 0)
    
    #  V1 V2 V3 Freq
    #2  b  y  f    1
    #3  a  z  f    2
    #5  a  y  g    1
    #6  b  y  g    2
    

    dplyr

    library(dplyr)
    df %>% 
      count(V1, V2, V3, name = "Freq")
    
    #  V1    V2    V3     Freq
    #1 a     y     g         1
    #2 a     z     f         2
    #3 b     y     f         1
    #4 b     y     g         2
    

    【讨论】:

    • 我编辑了我的问题,请看看你是否能帮助我!提前致谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2022-01-08
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多