我需要创建一个新的数据框来排除出现在同一个fosdate (培育日期)的"dam1“和"dam2”列中的水坝。我尝试过df <- df[df$dam1!=df$dam2,],但不起作用。Dam1和dam2是母亲的身份因素。
我的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将非常感谢您的帮助!
巴松
发布于 2010-05-21 07:14:25
问题是dam1和dam2是各自具有不同级别的因子。要解决此问题,您需要将因子转换为“字符”以进行比较。
dfnew <-df[as.character(df$dam1) != as.character(df$dam2), ]发布于 2010-05-21 07:07:17
我的猜测是,当您导入数据时,df$dam1和df$dam2成为了因子
您可以使用以下命令进行检查
is.factor(df$dam1)如果这是真的,那么尝试如下所示
df[as.character(df$dam1) != as.character(df$dam2),]发布于 2010-05-20 09:44:08
基于你可能使用R的想法的胡乱猜测(因为你的其他问题都是关于R的)。请注意,我不知道R,我只是把其他问题和答案中的2和2放在一起。
试一试
df <- df[df$dam1 != df$dam2,]即在比较子句的两侧显式指定df$。
https://stackoverflow.com/questions/2870442
复制相似问题