выберите строки с неидентичными значениями столбца, используя R - PullRequest
1 голос
/ 20 мая 2010

Мне нужно создать новый фрейм данных, который исключает дамбы, которые появляются в «dam1» и столбцы "dam2" на том же самом fosdate (дата принятия). Я попытался df <- df[df$dam1!=df$dam2,], но не сработало. Dam1 и dam2 являются факторами, которые являются идентификаторами матерей.

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

Новый фрейм данных, который мне нужно получить: dfnew:

fosdate      dam1     dam2
30/10/2009   1W509    5C080
30/10/2009   1W509    5C640
1/10/2009    1W311    63927

Буду признателен за любую помощь!

Bazon

Ответы [ 3 ]

3 голосов
/ 21 мая 2010

Проблема в том, что dam1 и dam2 - это факторы с различным количеством уровней. Чтобы обойти это, вам нужно преобразовать факторы в «символы», чтобы сделать это сравнение.

dfnew <-df[as.character(df$dam1) != as.character(df$dam2), ]
0 голосов
/ 21 мая 2010

Я предполагаю, что когда вы импортировали данные, df $ dam1 и df $ dam2 стали факторами

Вы можете проверить это с помощью

is.factor(df$dam1)

Если это ИСТИНА, тогда попробуйте что-то вроде

df[as.character(df$dam1) != as.character(df$dam2),]
0 голосов
/ 20 мая 2010

Дикая догадка, основанная на идее, что вы можете использовать R (поскольку ваши другие вопросы касаются R). Обратите внимание, что я не знаю R, я просто соединяю 2 и 2 из других вопросов и ответов.

Попробуйте

df <- df[df$dam1 != df$dam2,]

т.е. явно укажите df $ с обеих сторон предложения сравнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...