gpt4 book ai didi

r - 如果R中有9个else条件的语句

转载 作者:行者123 更新时间:2023-12-04 13:23:40 26 4
gpt4 key购买 nike

我有一个函数,它查看9种不同的可能性,并据此选择一种具有以下形式的 Action :

我正在做的是查找向量,并为向量中的每个条目确定

IF the value in the vector is 1 THEN start function B
IF the value in the vector is 2 THEN start function C
IF the value in the vector is 3 THEN start function D
IF the value in the vector is 4 THEN start function E

ETC。

我想在R中写这个。是否在每个个案中都加上“else”?

我已经尝试通过以下方式 switch:
condition<-6
FUN<-function(condition){
switch(condition,
1 = random1(net)
2 = random2(net)
3 = random3(net)
4 = random4(net)
5 = random5(net)
6 = random6(net)
7 = random7(net)
8 = random8(net)
9 = random9(net)
10= random10(net))
}

其中随机数1到10是使用变量'net'的函数

并且 switch命令试图执行的操作是检查'condition'的值,如果如上例所示为6,则它将运行以下函数: random6(net)

最佳答案

使用switch函数,如下所示:

foo <- function(condition){
switch(condition,
'1' = print('B'),
'2' = print('C'),
'3' = print('D'),
'4' = print('E'))
}

> foo(1)
[1] "B"
> foo(2)
[1] "C"
> foo(3)
[1] "D"
> foo(4)
[1] "E"

进一步的细节在 ?switch

根据您的示例:
condition<-6
FUN<-function(condition){
switch(condition,
'1' = random1(net), # Maybe you're missing some commas here
'2' = random2(net), # and here
'3' = random3(net), # and here
'4' = random4(net)
....) # all the way to '10' = random10(net)
}

这将达到目的

这对我来说很好:
Foo <- function(condition){
x <- 1:20
switch(condition,
'1' = mean(x),
'2' = var(x),
'3' = sd(x))
}

> Foo(1)
[1] 10.5
> Foo(2)
[1] 35
> Foo(3)
[1] 5.91608

关于r - 如果R中有9个else条件的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13972614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com