是否可以通过使用子集删除 R 中的观察结果及其行中的后续数据?

Can observations in R be removed along with subsequent data in its row through the use of subset?

这是我正在处理的数据框示例[数据框实际上是 (189x11)]:

   >WB
       ID AGE LWT RACE SMOKE PTL HT UI FVT  BWT LOW
       85  19 182    2     0   0  0  1   0 2523   0
       86  33 155    3     0   0  0  0   3 2551   0
       87  20 105    1     1   0  0  0   1 2557   0
       88  21 108    1     1   0  0  1   2 2594   0

现在,通过使用子集,我想创建一个子集数据框,其中包含一个 table 用于怀孕期间吸烟的女性,反之亦然,我希望它看起来像这样:

      >smoke 
       ID AGE LWT RACE SMOKE PTL HT UI FVT  BWT LOW
       87  20 105    1     1   0  0  0   1 2557   0
       88  21 108    1     1   0  0  1   2 2594   0

       >nonsmoke
       ID AGE LWT RACE SMOKE PTL HT UI FVT  BWT LOW
       85  19 182    2     0   0  0  1   0 2523   0
       86  33 155    3     0   0  0  0   3 2551   0

然而,当我使用子集时:

    smoke <-subset(dategrame,SMOKE==1)

我明白了:

      ID AGE LWT RACE SMOKE PTL HT UI FVT  BWT LOW
       85  19 182    2     1   0  0  1   0 2523   0
       86  33 155    3     1   0  0  0   3 2551   0
       87  20 105    1     1   0  0  0   1 2557   0
       88  21 108    1     1   0  0  1   2 2594   0

所以有人可以帮助我理解我做错了什么以及为什么我不能得到我想要的数据帧吗?因为我正在尝试将它们分开,所以我可以通过箱线图比较吸烟和不吸烟的母亲的 BWT。

如果您想绘制这样的箱线图,则无需对数据框进行子集化。试试这个:

d = data.frame(SMOKE=c(0,0,0,1,1,1), BWT=c(2523,2551,2560,2557,2594,2600))
boxplot(d$BWT ~ d$SMOKE)