использование rbind выдает предупреждение об ошибке об уровнях факторов

#r

#r

Вопрос:

 fxrates <-rbind(fxrates,c("EODMRS","USD","M",1,1,"17-APR-2019",1))
 

Предупреждающее сообщение: В [<-.factor ( *tmp* , ri, значение = «USD») :
недопустимый уровень фактора, сгенерированный NA

Ребята, вы знаете, почему вторая ячейка (с долларами США) не генерируется?

Комментарии:

1. Измените factor столбцы на character , и все будет хорошо, т.е. i1 <- sapply(fxrates, isfactor); fxrates[i1] <- lapply(fxrates[i1], as.character)

Ответ №1:

Мы можем изменить factor столбцы на character и rbind со list значениями, поскольку типы могут быть разными и vector (сконструированные с c ) могут хранить только один тип

 i1 <- sapply(fxrates, is.factor)
fxrates[i1] <- lapply(fxrates[i1], as.character)
rbind(fxrates,list("EODMRS","USD","M",1,1,"17-APR-2019",1))
 

Комментарии:

1. Спасибо за вашу помощь, но все же у меня такая же ошибка с этой формулой :/

2. @KennyR Эта ошибка не должна возникать, потому что она преобразуется в character

3. @KennyR Извините, произошла опечатка. isfactor должно быть is.factor

4. @KennyR Спасибо, что указали на это. Я собирался протестировать его, iris а затем обнаружил опечатку

Ответ №2:

Как насчет использования add_row в dplyr пакете?

 fxrates <- dplyr::add_row(
    fxrates,
    x1 = "EODMRS", x2 = "USD", x3 = "M", x4 = 1, x5 = 1, x6 = "17-APR-2019", x7 = 1)
)
 

Эти x1 … x7 следует заменить правильными именами столбцов.