使用 R 选择具有不同列值的行
我需要创建一个新的数据框,其中排除出现在“dam1”中的水坝和 “dam2”列位于同一 fosdate(培育日期)上。我尝试了 df <- df[df$dam1!=df$dam2,] 但没有成功。 Dam1 和 dam2 是母亲的 id 因子。
我的 df:
fosdate dam1 dam2
8/09/2009 2Z523 2Z523
30/10/2009 1W509 5C080
30/10/2009 1W509 5C640
30/10/2009 1W509 1W509
1/10/2009 1W311 63927
我需要获取的新数据框是: dfnew:
fosdate dam1 dam2
30/10/2009 1W509 5C080
30/10/2009 1W509 5C640
1/10/2009 1W311 63927
将不胜感激任何帮助!
巴松
I need to create a new data frame that excludes dams that appear in "dam1" and
"dam2" columns on the same fosdate (fostering date). I tried df <- df[df$dam1!=df$dam2,]
but did not work. Dam1 and dam2 are factors which are the id's of mothers.
my df:
fosdate dam1 dam2
8/09/2009 2Z523 2Z523
30/10/2009 1W509 5C080
30/10/2009 1W509 5C640
30/10/2009 1W509 1W509
1/10/2009 1W311 63927
The new data frame that I need to get is:
dfnew:
fosdate dam1 dam2
30/10/2009 1W509 5C080
30/10/2009 1W509 5C640
1/10/2009 1W311 63927
Would appreciate any help!
Bazon
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
问题在于 dam1 和 dam2 是具有不同级别数的因子。为了解决这个问题,您需要将因素转换为“字符”来进行比较。
The problem is that dam1 and dam2 are factors each with a different number of levels. To get around this you need to convert the factors to "characters" to do that comparison.
我的猜测是,当您导入数据时, df$dam1 和 df$dam2 成为因素
检查这一点,然后尝试类似的操作
您可以使用If this is the TRUE
My guess is that when you imported the data, df$dam1 and df$dam2 became factors
You can check this with
If this is the TRUE, then try something like
基于您可能正在使用 R 的想法进行疯狂猜测(因为您的其他问题与 R 有关)。请注意,我不知道 R,我只是将给出的其他问题和答案中的 2 和 2 放在一起。
尝试
在比较子句的两侧显式指定 df$ 。
Wild guess based on the idea that you might be using R (since your other questions are about R). Note that I don't know R, I'm just putting 2 and 2 together from the other questions and answers given.
Try
i.e. specifiy df$ explicitly on both sides of the comparison clause.