r-如何创建一个函数,将分数几率的向量转换为百分比


converter2 <- function(odds){
if(grepl("/", odds) == T){
x <- str_split(odds, "/")
y <- as.numeric(x[[1]][1])
z <- as.numeric(x[[1]][2])
a <- (1 / ((y/z) + 1)) * 100 
return(a)
}
else{
x <- as.numeric(odds)
x <- 1/(x + 1)
return(x*100)
}
}

这是我用来创建一个函数的代码,该函数将单个字符的分数几率转换为百分比(例如,如果你写"7/2",它将返回22.222,但它对向量不起作用,返回错误:

1: In if (grepl("/", odds) == T) { :
the condition has length > 1 and only the first element will be used

有人有办法解决这个问题吗?我想使用ifelse语句,但不知道什么会起作用。谢谢

我一直与R失去联系,所以请耐心等待。

sapply(矢量,转换器2(

这将在每个元素上应用该函数,并返回一个向量。

另一个选项是

Vectorize(converter2)(c("7/22","3/7"))

最新更新