【问题标题】:Summary function in R does not give frequency tableR中的汇总函数没有给出频率表
【发布时间】:2021-03-09 12:38:45
【问题描述】:

当我在 R 中使用 summary() 函数时,它为我提供了连续数值变量的正确输出,但它没有为我提供字符变量的频率表。我的同事在相同的数据集上使用相同的代码并获取频率表。我有 R 的最新版本。我该怎么做才能让摘要为我工作? (注意:无论我使用什么数据集,即使是 R 教程中的数据集,它都不会起作用。) 这是我得到的输出:

summary(chem)
#>   plantid            species             deerpr             forest         
#> Length:104         Length:104         Length:104         Length:104        
#> Class :character   Class :character   Class :character   Class :character  
#> Mode  :character   Mode  :character   Mode  :character   Mode  :character  

这是她得到的输出:

summary(chem)
#>    plantid   species       deerpr          forest         
#> B1     : 1   fagr:102   higher:45   baldpate  :34       
#> B10    : 1              lower :57   curlis    :10          
#> B100   : 1                          eames     :13                      
#> B12    : 1                          herrontown:23                   
#> B13    : 1                          rosedale  :22                                            
#> B15    : 1                                                                                   
#> (Other):96                                                                                 

【问题讨论】:

  • 请添加您的代码和示例数据集,以便我们尝试重现您的结果。

标签: r summary frequency-table


【解决方案1】:

如果你这样做:

chem[] <- lapply(chem, as.factor)
summary(chem)

你会得到和你同事一样的结果。


正如 cmets 中有人建议的那样(由于某种原因,我不再看到该评论),您可能有两个不同的 R 版本,或者无论如何,当您读取数据时,您会以两种不同的方式进行操作。

因此,对于您的同事来说,所有字符串都被视为因子,而您将它们保留为字符串。

只需将所有字符变量转换为因子。

您也可以这样做,以防您有其他列不想转换为因子:

chem <- purrr::modify_if(chem, is.character, as.factor)

【讨论】:

    【解决方案2】:

    我怀疑你们两个得到不同结果的原因是因为从 R 版本开始 4.0.0,默认为 stringsAsFactors changedFALSE。因此,当您从 .csv 或其他文本文件中读取数据时,您的数据将作为字符向量加载。相比之下,她的版本小于4.0.0,数据自动转换为factor类型。

    您可以在使用stringsAsFactors = TRUE 读取数据时更改此设置。例如:

    data <- read.csv("data.csv",stringsAsFactors = TRUE)
    

    【讨论】:

    • 很高兴它成功了。如果某个答案解决了您的问题,请考虑通过左侧的灰色勾号接受它。
    猜你喜欢
    • 2022-01-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多