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"))