【发布时间】:2014-05-14 23:25:38
【问题描述】:
以下是我的示例数据集:
> dput(lanec)
structure(list(vehicle.id = c(2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L,
5L, 5L), frame.id = c(1L, 2L, 3L, 4L, 5L, 3L, 4L, 5L, 6L, 7L,
8L, 9L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 6L, 7L, 8L, 9L, 10L, 11L,
12L), lane.change = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
2L, 1L), .Label = c(".", "yes"), class = "factor")), .Names = c("vehicle.id",
"frame.id", "lane.change"), class = "data.frame", row.names = c(NA,
-26L))
第一列是进入高速公路特定路段的车辆的 ID。他们在离开路段之前一直被观察,因此每辆车都有不同数量的观察时间范围。帧号在frame.id 列中给出。第三列告诉车辆是否改变车道以及在哪个框架。
在这个样本数据中,除了 2 号车辆之外的所有车辆都改变了车道。 5 号车两次变道。
必填
我想确定哪些车辆改变了车道并将它们从数据集中删除。我尝试使用subset(lanec, lane.change!='yes'),但它只删除那些lane.change 的值为yes 的行。使用样本数据集,期望的输出应该是:
vehicle.id frame.id lane.change
1 2 1 .
2 2 2 .
3 2 3 .
4 2 4 .
5 2 5 .
我怎样才能做到这一点?它一定很简单,但我无法弄清楚。提前致谢。
【问题讨论】:
标签: r