Я создал таблицу:
RpgCharDF <- data.frame(Name = character(),
Level = integer(),
ClassChar = character(),
Race = character(),
HP = integer(),
Attack = integer(),
Resist = integer())
Написал функцию-конструктор:
RPGcharacter <- function(name, level, rpgClass, race, HP, attack, resist){
value <- list(name= name, level = level, rpgClass = rpgClass, HP = HP, attack = attack, resist = resist)
attr(value, "class") <- "RPGcharacter"
value
}
Создал два объекта с помощью функции:
Artur <- RPGcharacter("Artur", 22, "Warlock", "Dwarf", 130, 12, 3)
Dawid <- RPGcharacter("Dawid", 1, "Homeless", "Gnome", 20, 2, 1)
И до сих пор,все работает отлично.Я получил в окружении правильный DF и два объекта в виде списка с 6 значениями.
Теперь я попытался добавить объекты в DF:
RpgCharDF <- rbind(RpgCharDF, Dawid)
RpgCharDF <- rbind(RpgCharDF, Artur)
И я получил ошибку:
Warning in `[<-.factor`(`*tmp*`, ri, value = "Artur") :
invalid factor level, NA generated
Warning in `[<-.factor`(`*tmp*`, ri, value = "Warlock") :
invalid factor level, NA generated
Это предупреждение, поэтому объект был добавлен в DF, но этовыглядит так:
NAME Level RPGClass HP ATTACK RESIST
1 Dawid 1 Homeless 20 2 1
2 NA 22 NA 130 12 3
В DF есть значения NA.
Где я допустил ошибку?Что не так с этим кодом?Я должен заметить, что оба элемента Артур и Давид созданы нормально.Оба имеют заполненное имя и т. Д., Когда я нажимаю в окружении.