【问题标题】:Element-wise subsetting in RR中的元素子集
【发布时间】:2021-07-22 20:47:36
【问题描述】:

我正在尝试从数据框中打印特定的观察结果。考虑这个简单的例子:

df <- data.frame(ID = c(1,1,1,2,2,2,3,3),
                 Week = c(1,2,2,1,1,2,1,1),
                 Y = c(4,2,6,7,5,3,1,9))

我想(仅)打印 (ID = 1 & Week = 2)、(ID = 2 & Week = 1) 以及 (ID = 3 & Week = 1) 的行,并给出以下输出:

rbind(df[(df$ID == 1) & (df$Week == 2),],
      df[(df$ID == 2) & (df$Week == 1),],
      df[(df$ID == 3) & (df$Week == 1),])

用于索引的值存储在每个变量的向量中:

IDidx <- c(1,2,3)
Weekidx <- c(2,1,1)

是否有任何解决方案可以像我使用 rbind()“手动”那样从它们中获取这些向量和索引?

感谢您的帮助!

【问题讨论】:

    标签: r indexing subset


    【解决方案1】:

    我们可以基于IDidxWeekidx创建一个数据框,然后使用dplyr包中的semi_join

    inx <- data.frame(ID = IDidx, Week = Weekidx)
    
    library(dplyr)
    
    df %>% semi_join(inx, by = c("ID", "Week"))
    #   ID Week Y
    # 1  1    2 2
    # 2  1    2 6
    # 3  2    1 7
    # 4  2    1 5
    # 5  3    1 1
    # 6  3    1 9
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多