【发布时间】:2017-08-28 13:18:09
【问题描述】:
我有以下数据框:
example=data.frame(x=c(1,2,3),y=c(4,5,6))
x y
1 1 4
2 2 5
3 3 6
我想从 1 列中删除一个值,所以我得到了这个(我使用 example$x[example$x==2]<-NA 实现的):
x y
1 1 4
2 NA 5
3 3 6
但现在我被卡住了,因为我现在想将剩余的值向上移动,以便 NA 位于底部:
x y
1 1 4
2 3 5
3 NA 6
最终我希望能够对两列都执行此操作,在不同的行中使用单个值,例如:
来自:
x y
1 1 NA
2 NA 5
3 3 6
收件人:
x y
1 1 5
2 3 6
3 NA NA
希望有人有一个简单的解决方案!谢谢
【问题讨论】:
-
这样做的理由是什么?据推测,数据框旨在将一行中的值相互关联。通过这样做,您将
x = 1与y = 4相关的关系更改为x = 1与y = 5相关的关系。 -
我的数据框是 x= 女性 ID 和 y= 男性 ID。我需要根据他们的相关性将女性与男性相匹配,这对于每对可能的夫妇都是不同的)。一旦选择了女性,我需要从列中删除该个人,并且所有剩余的 ID 都会向上移动,这样就不会出现空白。我希望有一个简单的解决方案,但我可能需要重新评估如何使用这些值。可能不是作为一个数据帧,而是作为单独的。
-
好消息是,您的问题在您提供的上下文中是有意义的。更好的消息是 R 可能有更好的方法来进行匹配。该方法将在一定程度上取决于您的匹配标准是什么。然而,这可能是与这个问题不同的一个问题。
-
很高兴听到这个消息!这件作品只是一个大循环的一小部分,它从谱系中对个体进行子集和选择进行育种。我对这种编码很陌生,所以这是我思考它如何工作的最简单方法。感谢您的意见!
-
你可以看看
Matching包。它可能允许您根据您使用的标准自动执行此过程。它主要使用指标(距离),这需要非分类变量,但您可以指定分类变量的精确匹配。