【发布时间】:2013-11-28 18:12:30
【问题描述】:
我有一个数据框,测试,定义如下:
id <- c(100, 100, 101, 101, 102, 102)
v1 <- c(1,2,0,0,3,0)
v2 <- c(2,3,5,8,4,1)
test <- data.frame (id, v1, v2)
如何创建一个新的数据框 test2,其中只有三行,由 id 匹配。每行将具有以下列:id、v1.1、v2.1、v3.1、v1.2、v2.2、v3.2。换句话说,对于每个唯一 id,我将创建一个新行,它将共享此 id 的旧行组合在一起。我想知道怎么做。
此外,上述方法旨在找出两个观察值中哪个 id 都为 0。我想删除这些。例如,我将删除 id 为 101 的两个观察值,因为它们都有 0。我会使用 id 102 保留这两个观察结果,因为其中只有一个是 0。是否有另一种方法可以在不执行上述方法的情况下执行此操作?
非常感谢,感恩节快乐!
【问题讨论】:
-
如果你有相同的 id ,一个 0 代表 v1 另一个 0 在 v2 ,你会删除这一行,还是保留它?
-
我会保留那个。在您很好的回答之后,我现在可以做的是创建一个新变量,将其命名为 sum,并将 sum 定义为 v1.1 + v1.2。然后检查 sum == 0,如果是,删除它。