Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R统计中组合两个函数?_R - Fatal编程技术网

如何在R统计中组合两个函数?

如何在R统计中组合两个函数?,r,R,我正在努力自学R统计学。我发现了一个非常有用的方法,它对我学习这门新语言帮助很大。在其中一个项目中,我们创建一副牌,洗牌,然后发牌 为此,我们创建了两个函数: shuffle <- function(cards){ random <- sample(1:96, size = 96) cards[random, ] } deal <- function(cards){ cards[1:10,] } 一、 但是,作为练习,我想将这两个函数组合成一个单函数,如下所示:

我正在努力自学R统计学。我发现了一个非常有用的方法,它对我学习这门新语言帮助很大。在其中一个项目中,我们创建一副牌,洗牌,然后发牌

为此,我们创建了两个函数:

shuffle <- function(cards){
  random <- sample(1:96, size = 96)
  cards[random, ]
}

deal <- function(cards){
  cards[1:10,]
}
一、 但是,作为练习,我想将这两个函数组合成一个单函数,如下所示:

dealAndSuffle <- function(cards){
  random <- sample(1:96, size = 96)
  cards <- cards[random, ]
  cards[1:10,]  
}
dealAndSuffle
sample()
函数随机选择值,因此即使相同的函数重复两次,也会得到不同的结果。为确保组合函数提供相同的输出,请在检查结果时使用
set.seed()
函数:

# Create a toy data frame
N <- 96
deck <- data.frame( Ability = sample(c("Int","Will","Agi"), N,  replace=T ), Card.Value=rep(1:24, each=4))


shuffle <- function(cards){
  random <- sample(1:96, size = 96)
  cards[random, ]
}

deal <- function(cards){
  cards[1:10,]
}



dealAndShuffle <- function(cards){
  random <- sample(1:96, size = 96)
  cards <- cards[random, ]
  cards[1:10,]  
}

# Set seed to insure reproducibility
set.seed(12345)
deck2 <- shuffle(deck)
deal(deck2)
#    Ability Card.Value
# 14    Will          4
# 51     Agi         13
# 80     Agi         20
# 90     Int         23
# 92     Int         23
# 24     Agi          6
# 58     Int         15
# 75    Will         19
# 88     Agi         22
# 2      Int          1


# Set seed to insure reproducibility
set.seed(12345)
dealAndShuffle(deck)
#    Ability Card.Value
# 14    Will          4
# 51     Agi         13
# 80     Agi         20
# 90     Int         23
# 92     Int         23
# 24     Agi          6
# 58     Int         15
# 75    Will         19
# 88     Agi         22
# 2      Int          1
#创建玩具数据框

N
sample
提供随机结果
set.seed
可能是获得相同结果的线索为了实现@Clemsang所说的,随机顺序每次都会使结果不同。您需要执行类似于
set.seed(0)
的操作,然后运行第一个公式。然后将种子设置回零并运行第二个版本。除了前面关于set.seed的评论中提到的内容之外。。。我只是想检查一下,既然你说函数“不工作”,那么函数名中的拼写是否可能是问题所在?也就是说,您可能正在定义函数dealAndSuffle(不带“h”),但调用函数dealAndShuffle(带“h”)
# Create a toy data frame
N <- 96
deck <- data.frame( Ability = sample(c("Int","Will","Agi"), N,  replace=T ), Card.Value=rep(1:24, each=4))


shuffle <- function(cards){
  random <- sample(1:96, size = 96)
  cards[random, ]
}

deal <- function(cards){
  cards[1:10,]
}



dealAndShuffle <- function(cards){
  random <- sample(1:96, size = 96)
  cards <- cards[random, ]
  cards[1:10,]  
}

# Set seed to insure reproducibility
set.seed(12345)
deck2 <- shuffle(deck)
deal(deck2)
#    Ability Card.Value
# 14    Will          4
# 51     Agi         13
# 80     Agi         20
# 90     Int         23
# 92     Int         23
# 24     Agi          6
# 58     Int         15
# 75    Will         19
# 88     Agi         22
# 2      Int          1


# Set seed to insure reproducibility
set.seed(12345)
dealAndShuffle(deck)
#    Ability Card.Value
# 14    Will          4
# 51     Agi         13
# 80     Agi         20
# 90     Int         23
# 92     Int         23
# 24     Agi          6
# 58     Int         15
# 75    Will         19
# 88     Agi         22
# 2      Int          1