Я пытаюсь создать набор функций, которые могут создавать таблицы, содержащие все комбинации различных 8-сторонних игровых кубиков.Моя функция создает фрейм данных со всеми этими комбинациями со столбцами, содержащими символы.
Теперь я хочу сделать что-то вроде этого:
Проходить по каждой строке и каждый раз, когда я нахожу определенный символ, добавить1 к соответствующему новому столбцу.
Я попытался написать функцию для этого и использовать функции применения, но я новичок в R и не смог выполнить эту работу.
Это код, который я использую для создания фрейма данных.
createDiceTable <- function(redDice=0,blackDice=0,blueDice=0){
red <- as.data.frame(c("Blank","Blank","Crit","Crit","Hit","Hit","Accuracy","HitHit"))
black <- as.data.frame(c("Blank","Blank","Hit","Hit","Hit","Hit","HitCrit","HitCrit"))
blue <- as.data.frame(c("Hit","Hit","Hit","Hit","Crit","Crit","Accuracy","Accuracy"))
result <- as.data.frame(expand.grid(c(replicate(redDice,red),replicate(blackDice,black),replicate(blueDice,blue))))
convertDice(result)
}
convert
convertDice <- function(df){
df[,"Damage"] <- NA
df[,"Accuracies"] <- NA
df[,"Crits"] <- NA
return(df)
}
Я пробовал этот код для функции, применяемой к фрейму данных, который должен подсчитывать количество кубиков, бросивших «Hit» в «Damage»-column
damageFunc <- function(x){if(x=="Hit") append(df["Damage"],1)}
Я пытался применить его так:
sapply(testdice,damageFunc)