Konvertieren Sie einen Zeichenvektor aus gemischten Zahlen, Brüchen und ganzen Zahlen in numerische Werte

Ich versuche, eine R-Funktion zu schreiben, um Brüche und gemischte Zahlen in Dezimalzahlen umzuwandeln. z.B.

mixedToFloat <- function(x){
    x <- sub(' ', '+', x, fixed=TRUE)
    return(unlist(lapply(x, function(x) eval(parse(text=x)))))
}

> mixedToFloat(c('1 1/2', '2 3/4', '2/3', '11 1/4', '1'))
[1]  1.5000000  2.7500000  0.6666667 11.2500000  1.0000000

Dies funktioniert in den meisten Fällen, die ich mir vorstellen kann, fühlt sich aber ein bisschen hackisch an. Gibt es eine Standardmethode, um dies zu tun?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage