R中某个字符后捕获的数字的数学运算

Mathematical operation on captured number that comes after a certain character in R

我有一个包含如下元素的向量:

x <- c("3434/1233", "3434.332/232.2", "220.23/932.89", "908.11111/9")

我想用它们的值 乘以 60 替换斜杠 之后的数字

因此生成的向量将是:

x.times.sixty <- c("3434/73980", "3434.332/13932", "220.23/55973.4", "908.11111/540")

我该怎么做?

我试过以下方法无效:

gsub(x = x, pattern = "/(.*)", replacement = as.numeric('\1' * 60))

还有这个:

gsub(x = x, pattern = "/(.*)", replacement = '\1 * 60')

我们可以使用 gsubfn 进行乘法运算。捕获字符串末尾的数字,包括小数点(([0-9.]+$)),将其转换为数字并乘以 60

library(gsubfn)
gsubfn("([0-9.]+$)", ~ as.numeric(x)*60, x)
#[1] "3434/73980"     "3434.332/13932" "220.23/55973.4" "908.11111/540" 

或正确遵循条件

gsubfn("\/([0-9.]+$)", ~ paste0("/", as.numeric(x)*60), x)
#[1] "3434/73980"     "3434.332/13932" "220.23/55973.4" "908.11111/540"