【问题标题】:Return rows of data frame that meet multiple criteria in R (panel data random sample)返回满足R中多个条件的数据框行(面板数据随机样本)
【发布时间】:2011-11-08 22:37:20
【问题描述】:

我希望根据唯一 ID 从面板数据中创建一个随机样本。

例如,如果您开始:

e = data.frame(id=c(1,1,1,2,2,3,3,3,4,4,4,4), data=c(23,34,45,1,23,45,6,2,9,39,21,1))

你想要一个包含 2 个唯一 ID 的随机样本:

out = data.frame(id=c(1,1,1,3,3,3), data=c(23,34,45,45,6,2))

虽然样本给了我随机的唯一 ID

sample( e$id ,2)    # give c(1,3)

我不知道如何使用逻辑调用返回所有需要的数据。 我尝试了很多方法,包括:

e[ e$id == sample( e$id ,2) ]   # only returns 1/2 the data

有什么想法吗???这太痛苦了。

【问题讨论】:

    标签: r panel dataframe sample


    【解决方案1】:

    我不完全确定您的预期结果应该是什么,但这是否适用于您正在尝试做的事情?

    > e[e$id %in% sample(e$id, 2), ]
       id data
    6   3   45
    7   3    6
    8   3    2
    9   4    9
    10  4   39
    11  4   21
    12  4    1
    

    或者也许你想要这个:

    > e[e$id %in% sample(unique(e$id), 2), ]
       id data
    1   1   23
    2   1   34
    3   1   45
    9   4    9
    10  4   39
    11  4   21
    12  4    1
    

    【讨论】:

    • 如果它很棒,那么在 SO 中检查它是礼貌的。
    • @DWin,问题一定是他惹的祸(见他在问题中的最后一行)。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    相关资源
    最近更新 更多