У меня проблемы с кодированием al oop для правильного добавления строк в небольшой набор данных.
Скажем, у меня есть следующий фрейм данных под названием "colors":
color count group
Blue 3 1
Blue 2 2
Red 2 2
Green 1 1
Что теперь Мне нужно добавить 0 значений для каждого столбца, чтобы все группы имели каждый цвет, иначе он должен выглядеть следующим образом:
color count group
Blue 3 1
Blue 2 2
Red 2 2
Green 1 1
Red 0 1
Green 0 2
То, что я пытался сделать, подошло ближе к решению, которое я хочу, это:
color.u <- unique(colors$color)
color.z<- function(x){
if(x %in% colors$color[colors$group == "1"] == F ) {
rbind(colors, c(x, 0, "1"))
}
if(x %in% colors$color[colors$group == "2"] == F ) {
rbind(colors, c(x, 0, "2"))
}
}
sapply(color.u, function(x) color.z(x))
Эта функция возвращает весь набор данных несколько раз с одним из двух обнуленных значений в конце. Я понимаю, почему это ошибка, и я уверен, что решение легко, но я не знаю, как его исправить. Есть предложения?
Спасибо!
A.