如何使用另一个子集作为条件来创建子集?

时间:2018-04-11 08:31:26

标签: r subset

我想使用另一个子集作为条件创建子集。我无法显示我的实际数据,但我可以展示一个处理问题核心的示例。

例如,我有10个科目,每个科目有10个观察。因此,我的数据示例是使用以下方法创建一个简单的数据框:

    ID <- rep(1:10, each = 10)
    x <- rnorm(100)
    y <- rnorm(100)
    df <- data.frame(ID,x,y)

创造了:

       ID           x           y
   1    1  0.08146318  0.26682668
   2    1 -0.18236757 -1.01868755
   3    1 -0.96322876  0.09565239
   4    1 -0.64841436  0.09202456
   5    1 -1.15244873 -0.38668929
   6    1  0.28748521 -0.80816416
   7    1 -0.64243912  0.69403155
   8    1  0.84882350 -1.48618271
   9    1 -1.56619331 -1.30379070
   10   1 -0.29069417  1.47436411
  11   2 -0.77974847  1.25704185
  12   2 -1.54139896  1.25146126
  13   2 -0.76082748  0.22607239
  14   2 -0.07839719  1.94448322
  15   2 -1.53020374 -2.08779769 
    etc.

其中一些受试者对一个事件是肯定的(例如主题3,5和7),所以我使用以下方法创建了一个子集:

    event_pos <- subset(df, ID %in% c("3","5","7"))

现在,我还想为一个事件负面的受试者创建一个子集。我可以使用这样的东西:

   event_neg <- subset(df, ID %in% c("1","2","4","6","8","9","10"))

问题是,我的数据集太大,无法指定负组的所有个体。有没有办法使用我的子集event_pos来获取一个子集中负面事件的所有主题?

TL; DR

我可以通过从数据框中删除subset_1来获取subset_2吗?

1 个答案:

答案 0 :(得分:1)

您可以使用:

ind_list <- c("3","5","7")

event_neg <- subset(df, (ID %in% ind_list) == FALSE)

event_neg <- subset(df, !(ID %in% ind_list))

希望这会有所帮助

Gottaviannoni