【问题标题】:Overflow of levels for factor columns of data frame in RStudioRStudio中数据框因子列的级别溢出
【发布时间】:2016-08-16 23:14:22
【问题描述】:

试试这个代码

f <- factor(sample.int(1000, 100))
df <- data.frame(F = f)
View(df)

现在,当您将鼠标悬停在 RStudio View() 选项卡中的 F 列上时,它会显示“具有 1 个级别的因子”。但是当你单独看f的定义时,它会有各个层次。我尝试过不同的级别。它正确显示直到 64 级之后它的行为很奇怪。请让我知道如何解决这个问题。我已经尝试了“nmax”,但没有效果。

下面的代码可以正常工作

f <- factor(sample.int(1000, 64))
df <- data.frame(F = f)
View(df)

【问题讨论】:

  • nlevels(f)nlevels(df$F) 为我在 RStudio 之外的普通旧 R 中的第一个案例和第二个案例提供 10064
  • 我在 RStudio 中也得到了 nlevels(df[["F"]]) 等于 100。 RStudio 中的 View() 选项仅表示 1 级,但这可能只是查看器的限制,因为底层对象显然仍然完好无损。

标签: r rstudio


【解决方案1】:

它工作正常。在levels()str() 的帮助下检查

  f <- factor(sample.int(1000, 100))
  df <- data.frame(F = f)

  levels(df$F)
  #   [1] "7"   "8"   "15"  "20"  "22"  "33"  "51"  "65"  "70"  "84"  "86"  "93" 
  #  [13] "98"  "134" "161" "164" "169" "170" "189" "200" "203" "215" "218" "223"
  #  [25] "234" "245" "249" "268" "279" "292" "296" "313" "328" "344" "347" "355"
  #  [37] "357" "363" "370" "376" "388" "392" "394" "397" "441" "449" "470" "487"
  #  [49] "493" "510" "520" "530" "546" "554" "565" "575" "577" "578" "579" "592"
  #  [61] "597" "602" "605" "616" "618" "621" "623" "638" "645" "646" "670" "681"
  #  [73] "694" "695" "716" "717" "723" "725" "734" "740" "759" "775" "793" "794"
  #  [85] "797" "818" "821" "825" "846" "851" "863" "865" "885" "888" "928" "951"
  #  [97] "958" "977" "993" "994"

  length(levels(df$F))
  # [1] 100

  str(df)
  # 'data.frame':   100 obs. of  1 variable:
  #  $ F: Factor w/ 100 levels "7","8","15","20",..: 45 80 34 21 74 92 76 78 47 43 ...

  View(df)

  df$F
  #   [1] 441 740 344 203 695 865 717 725 470 394 376 347 885 370 84  928 863 618 851 681 65  93  15  621 279 245 554 388
  #  [29] 449 134 565 888 825 623 223 292 170 670 793 392 723 161 249 397 487 794 7   22  994 602 33  357 215 977 86  577
  #  [57] 694 296 328 958 993 363 20  716 638 169 759 546 846 646 821 313 70  605 510 218 578 189 98  234 645 200 355 592
  #  [85] 164 818 597 51  734 8   268 951 575 616 579 530 493 520 797 775
  # 100 Levels: 7 8 15 20 22 33 51 65 70 84 86 93 98 134 161 164 169 170 189 200 203 215 218 223 234 245 249 268 ... 994

【讨论】:

    【解决方案2】:

    这不是 R 错误,而是 RStudio 错误。查看 nlevels() 或 str() 并检查 RStudio 中的 Environment 窗格是正确的(它对我来说说 Factor w/ 314 levels),但是当你将鼠标悬停/工具提示在View() 中的列名,它显示“因子为 1 级”

    截至 2017 年 2 月,有人报告了这个错误,RStudio 正在调查它。 https://support.rstudio.com/hc/en-us/community/posts/115001084508-Factor-levels-differ-in-view-mode-and-environment-tab?input_string=View()%20bug%20when%20viewing%20factors%20with%20%3E64%20levels

    【讨论】:

      猜你喜欢
      • 2014-02-11
      • 2022-01-20
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      相关资源
      最近更新 更多