Я хочу подмножество DataFrame, применяя к нему два условия. Когда я присоединяю фрейм данных, применяю первое условие, отделяю фрейм данных, присоединяю его снова, применяю второе условие и снова отключаю, получаю ожидаемый результат, блок данных с 9 наблюдениями.Прикрепить/отсоединить в R поведение очень странно
Конечно, вы обычно не отсоединяли/прикрепляли перед применением второго условия. Поэтому я прикладываю, применяю два условия друг к другу, а затем отсоединяю. Но результат сейчас другой: это кадр данных с 24 наблюдениями. Все, кроме 5 из этих наблюдений, состоят исключительно из значений NA.
Я знаю, что есть много советов против использования приложения, и я понимаю, что это опасно, потому что легко потерять отслеживание прилагаемого заявления, все еще действующего. Моя точка зрения здесь другая; Я вижу поведение в приложении, которое я просто не могу понять. Я использую R Studio 0.99.465 с 64-бит-R 3.2.1.
Так вот код, первая версия, которая является неуклюжим, но дает правильный результат (ДФ с 9 наблюдений, все не NA):
df <- expand.grid(early_vvl=c(0,1), inter_churn=c(0,1), inter_new_contract=c(0,1), late_vvl=c(0,1), late_no_reaction=c(0,1))
attach(df)
df <- df[(1-early_vvl) >= inter_churn + inter_new_contract + late_vvl,]
detach(df)
attach(df)
df <- df[early_vvl <= late_no_reaction,]
detach(df)
Теперь один, который производит dataframe с 24 наблюдений , большинство из которых состоят только из значений NA:
df <- expand.grid(early_vvl=c(0,1), inter_churn=c(0,1), inter_new_contract=c(0,1), late_vvl=c(0,1), late_no_reaction=c(0,1))
attach(df)
df <- df[(1-early_vvl) >= inter_churn + inter_new_contract + late_vvl,]
df <- df[early_vvl <= late_no_reaction,]
detach(df)
Я озадачен. Кто-нибудь понимает, почему вторая версия дает другой результат?
... тем самым демонстрируя, почему следует избегать прикрепления. –
Большое спасибо за быстрый, понятный и понятный ответ! Это был последний раз, когда я использовал приложение ... – MightyCurious