【问题标题】:Getting only first row of data by factor in R [duplicate]在R中仅按因子获取第一行数据[重复]
【发布时间】:2015-12-02 12:03:49
【问题描述】:

我有这样的数据:

Code  X    Y   Z
1     12.2 3.3 3.1
1     125  2   1
1     89   26  03
2     54   15  26 
2     89   26  65
3     26   56  15
3     4    2   5 
3     1    1   1
3     1    2   1

我想要每个代码的第一行。例如,我想要这样的东西:

Code  X     Y    Z
1     12.2  3.3  3.1
2     54    15   26  
3     1     2    1

我知道unique,但我不知道它是如何获得价值的,所以我不能依赖这个函数。我请求您尝试在 R 中可用的基本包内回答。

谢谢

【问题讨论】:

    标签: r filter dataframe


    【解决方案1】:

    试试

     df[match(unique(df$Code),df$Code),]
    
    # Code    X    Y    Z
    # 1    1 12.2  3.3  3.1
    # 4    2 54.0 15.0 26.0
    # 6    3 26.0 56.0 15.0
    

    match 返回第一个匹配项的位置向量,这就是您感兴趣的内容。

    【讨论】:

    • 或者只是df[!duplicated(df$Code), ]
    • 它总是只产生第一行吗?
    • 我的数据集很大。
    • @Neeraj:总是第一个匹配,所以总是第一行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    相关资源
    最近更新 更多