代码之家  ›  专栏  ›  技术社区  ›  Remy

函数的作用是:将所有结果追加到末尾

  •  1
  • Remy  · 技术社区  · 5 年前

    我正试图学习R,但遇到了一些(对我来说)意想不到的行为。我有4000部imdb电影的数据集。并希望按收视率和预算对前五名电影进行排序。我将此数据绑定到 datsort 使用:

    datsort <- arrange(dat, desc(imdb_score), budget)
    

    然后使用 head(datsort$movie_title,n=5) 这基本上就是我所期望的。

    我得到的返回的总数据是

    [1] Towering Inferno             
    [2] The Shawshank Redemption     
    [3] The Godfather                
    [4] Kickboxer: Vengeance         
    [5] Dekalog                      
    3928 Levels: #Horror  [Rec] 2  [Rec]  ... Zulu
    

    3928 Levels: #Horror  [Rec] 2  [Rec]  ... Zulu
    

    这似乎完全不相关,因为这只是电影的完整列表,按字母顺序排序

    我所期望的只是

    [1] Towering Inferno             
    [2] The Shawshank Redemption     
    [3] The Godfather                
    [4] Kickboxer: Vengeance         
    [5] Dekalog                      
    

    通过阅读文档和示例,我从未见过附加的总列表。我做错了什么?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Anders Ellern Bilgrau    5 年前

    正如其他人所暗示的,你的 movie_title 列存储为一个因子。一个快速修复方法是,在您的 head -打电话。反过来,打印方法将不会显示所有级别。

     datsort$movie_title <- as.character(datsort$movie_title)
    
     head(datsort$movie_title,n=5)
     #[1] Towering Inferno             
     #[2] The Shawshank Redemption     
     #[3] The Godfather                
     #[4] Kickboxer: Vengeance         
     #[5] Dekalog
    

    更好的是,使用 stringsAsFactors=FALSE