【发布时间】:2021-03-24 14:56:03
【问题描述】:
我查看了其他问题,这些问题似乎存在类似问题,随机行被所有 NA 值替换,但没有找到解决方案,因为其他用户的数据帧中已经存在 NA(如 Subsetting R data frame results in mysterious NA rows) .
我首先使用 na.omit 删除任何可能的 NA,但在最后一步仍会生成 NA 行。
我使用三列对数据进行子集化 - ID 列是数字和字母的混合 (11xx1234),二进制分类列(0 或 1),以及距离以米为单位的值列。任何出现不止一次的 ID 在二进制类别列中分配一个 1。 我正在尝试提取二进制类别列中为 1 的数据,但不希望 ID 多次表示,这样与每个 ID 关联的距离不会被计算多次,并且会影响任何统计测试。
比如:
x<-data.frame(ObjectID = c("11AD1234", "11AD1234", "11AB123", "11BA34", "11DA354", "11DA354"),
component = c(1,1,0,0,1,1),
distance = c(2,2,5,8,4,4))
这给出了:
ObjectID component distance
1 11AD1234 1 2
2 11AD1234 1 2
3 11AB123 0 5
4 11BA34 0 8
5 11DA354 1 4
6 11DA354 1 4
这是我尝试使用的代码,在添加距离列之前效果很好。
x[unique(x[x$component==1,]$ObjectID),]$distance
[1] 2 8
正确答案应该是 2 和 4,那我在做什么弄乱了这个?并且还以某种方式用 NA 替换了一堆行(尽管在此示例中未表示)?真实数据属于机密,不能共享,抱歉!
【问题讨论】:
-
x[unique(x[x$component==1,]$ObjectID),]$distance 这段代码给了我 NAs...不是你得到的。