R: Как добавить значения в новые столбцы на основе факторов в других столбцах - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь смоделировать некоторые кости.

На каждой стороне есть продукт. Моя цель - собрать все возможные комбинации, а затем суммировать их построчно (возможно, добавив в столбцы, созданные для этой цели)

Я все еще не очень хорошо разбираюсь в R, и я пробовал много вещей, но я, вероятно, неправильно их применил, поэтому я не чувствую себя в безопасности, говоря вам: «Я пробовал X, и это не сработало». Вместо этого я пытаюсь объяснить свою проблему как можно точнее.

Вот что я делаю:

Это добавляет столбцы для суммирования бросков костей. Работает нормально.

Makecolumns <- function(df){
  df[,"Number of fruits eaten"] <- NA
  df[,"Had a vegetable?"] <- NA
  df[,"Exotic fruits included?"] <- NA
  df[,"Number of exotic fruits included?"] <- NA
  return(df)
}

Создает таблицу со всеми возможными комбинациями. Работает нормально.

createfruittable <- function(nr_one=0,nr_two=0,nr_three=0){
  one <- as.data.frame(c("Bacon","Bacon","Mango","Mango","Pear","Pear","Cucumber","Pear_pear"))
  two <- as.data.frame(c("Bacon","Bacon","Pear","Pear","Pear","Pear","Pear_Mango","Pear_Mango"))
  three <- as.data.frame(c("Pear","Pear","Pear","Pear","Mango","Mango","Cucumber","Cucumber"))

  result <- (expand.grid(c(replicate(nr_one,one),replicate(nr_two,two),replicate(nr_three,three))))
convertfruit(result)

}

Пример с одним кубиком

fruits_eaten <- createfruittable(nr_one = 1, nr_two = 1,nr_three = 1)

Названия столбцов, которые я добавляю, должны объяснять, что я пытаюсь суммировать / считать. Если вы запустите код, я думаю, он будет интуитивно понятным.

Я хочу идти строка за строкой и рассчитывать на основе комбинации результатов игры в кости. Это доставляет мне неприятности, поскольку результаты бросков кубиков являются факторами в моем фрейме данных, и я не смог использовать условия для получения нужного мне результата.

Пример: Если у меня в ряду 1 есть Груша, Манго, Огурец, я хочу подсчитать, что в этом рулете было 2 фрукта, экзотический фрукт, 1 экзотический фрукт и овощи.

...