首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用R选择列值不同的行

使用R选择列值不同的行
EN

Stack Overflow用户
提问于 2010-05-20 09:08:00
回答 3查看 1.8K关注 0票数 1

我需要创建一个新的数据框来排除出现在同一个fosdate (培育日期)的"dam1“和"dam2”列中的水坝。我尝试过df <- df[df$dam1!=df$dam2,],但不起作用。Dam1和dam2是母亲的身份因素。

我的df:

代码语言:javascript
复制
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:

代码语言:javascript
复制
fosdate      dam1     dam2
30/10/2009   1W509    5C080
30/10/2009   1W509    5C640
1/10/2009    1W311    63927

将非常感谢您的帮助!

巴松

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-21 07:14:25

问题是dam1和dam2是各自具有不同级别的因子。要解决此问题,您需要将因子转换为“字符”以进行比较。

代码语言:javascript
复制
dfnew <-df[as.character(df$dam1) != as.character(df$dam2), ]
票数 3
EN

Stack Overflow用户

发布于 2010-05-21 07:07:17

我的猜测是,当您导入数据时,df$dam1和df$dam2成为了因子

您可以使用以下命令进行检查

代码语言:javascript
复制
is.factor(df$dam1)

如果这是真的,那么尝试如下所示

代码语言:javascript
复制
df[as.character(df$dam1) != as.character(df$dam2),]
票数 0
EN

Stack Overflow用户

发布于 2010-05-20 09:44:08

基于你可能使用R的想法的胡乱猜测(因为你的其他问题都是关于R的)。请注意,我不知道R,我只是把其他问题和答案中的2和2放在一起。

试一试

代码语言:javascript
复制
df <- df[df$dam1 != df$dam2,]

即在比较子句的两侧显式指定df$。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2870442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档