ifelse () дал мне неправильный вывод - PullRequest
0 голосов
/ 24 августа 2018

Я получил data.frame с именем DF1

Digit   Country
1       A
1       B
2       C
16      China P Rep
15      Indonesia 

я использую DF1$Digit <- ifelse(DF1$Digit<=5,"",DF1$Digit) стало

Digit   Country
        A
        B
        C
16      China P Rep
15      Indonesia 

после этого я использую DF1$Country2 <- ifelse(DF1$Digit== "","",DF1$Country) По какой-то причине на выходе получается

Digit   Country       Country2
        A         
        B             
        C          
16      China P Rep     36        
15      Indonesia       80

Я не знаю, в чем здесь проблема .. Надеюсь, кто-нибудь может мне помочь

1 Ответ

0 голосов
/ 24 августа 2018

Работает нормально для меня, пока Country является символом, а не факторной переменной:

DF1 <- data.frame(
    Digit = c(1,1,2,16,15),
    Country = c("A", "B", "C", "China", "Indonesia"),
    stringsAsFactors = FALSE
)

DF1$Digit <- ifelse(DF1$Digit<=5,"",DF1$Digit)

DF1$Country2 <- ifelse(DF1$Digit== "","",DF1$Country)

DF1

Выход:

  Digit   Country  Country2
1               A          
2               B          
3               C          
4    16     China     China
5    15 Indonesia Indonesia

Вы можете проверить, является ли Country факторной переменной с str(DF1) или просто is.factor(DF1$Country). Если это фактор-переменная, вы можете преобразовать ее в символ следующим образом:

DF1$Country <- as.character(DF1$County)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...