【问题标题】:R - How to convert a categorical variable in frequenciesR - 如何转换频率的分类变量
【发布时间】:2020-08-10 16:17:42
【问题描述】:

我需要使用分类变量创建一个新变量,该变量采用每个类别的频率。我写了以下代码:

df[ , t_Product := .N , by = .(Product)]

但我有这个错误:

 Error in `[.data.frame`(datos, , `:=`(t_Product, .N), by = .(Product)) : 
  unused argument (by = .(Product))

df 是我的数据框,t_Product 是新列的名称,Product 是当前列。

如果我是对的,我将按列 Product 进行分组,并创建另一个名为 t_Product 的列进行计数,因此采用频率...

【问题讨论】:

  • 嗨,欢迎来到 Stack Overflow!为了让我们帮助您,请提供reproducible example。例如,要生成最小数据集,您可以使用head()subset() 或索引。然后使用dput() 给我们一些可以立即放入R 的东西。另外,请确保您知道该怎么做when someone answers your question。最后,这里是 Stack Overflow 的help center 的链接。谢谢!

标签: r dataframe data.table


【解决方案1】:

您使用的语法将被 data.table 类的对象识别,但不能被 data.frame 类的对象识别。

然后我建议安装 data.table 包(如果尚未安装)并在您的代码行之前添加以下内容:

library(data.table)
setDT(df)

【讨论】:

    【解决方案2】:

    您的数据是data.table 格式吗?它不是,但只是为了让您知道如何测试它是否在未来,运行以下代码行:

    is.data.table(df)
    

    应该输出FALSE

    为了解决这个问题,请在代码前添加以下内容:

    library(data.table) #import data.table package
    
    df = as.data.table(df) #convert df to data.table
    
    df[, t_Product := .N , by = .(Product)] #your code
    

    library(data.table)
    
    setDT(df)
    
    df[, t_Product := .N , by = .(Product)]
    

    以帕尔默企鹅为例

    library(data.table)
    library(palmerpenguins)
    data(package = 'palmerpenguins') #importing the palmer penguins data
    
    df = as.data.table(penguins) #you can also use setDT(df)
    df[, t_Product := .N , by = .(species)] #using your code here
    df[, .(species, island, t_Product)] #selecting columns using column name
    
    #>        species    island t_Product
    #>   1:    Adelie Torgersen       152
    #>   2:    Adelie Torgersen       152
    #>   3:    Adelie Torgersen       152
    #>   4:    Adelie Torgersen       152
    #>   5:    Adelie Torgersen       152
    #>  ---                              
    #> 340: Chinstrap     Dream        68
    #> 341: Chinstrap     Dream        68
    #> 342: Chinstrap     Dream        68
    #> 343: Chinstrap     Dream        68
    #> 344: Chinstrap     Dream        68
    

    reprex package (v0.3.0) 于 2020 年 8 月 10 日创建

    【讨论】:

    猜你喜欢
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2019-11-15
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多