我正在尝试模拟一些骰子。
每侧都有一个食物。我的目标是获取所有可能的组合,然后逐行汇总(可能通过添加到为此目的而创建的列中)
我对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)
我添加的列名称应说明我要总结/计算的内容。如果您运行代码,我认为它将非常直观。
我想逐行计算,并根据骰子结果的组合进行计数。这给我带来麻烦,因为掷骰子的结果是我数据框中的因素,而且我无法使用条件来获得所需的结果。
示例: 如果我在第一行中有梨,芒果,黄瓜,我想算一下这卷有2个水果,一个异国水果,包含1个异国水果和蔬菜。