x <- c(0.7177853, 0.3038550)
recalc <- function(x, y) {
values <- sum(x, y)
mult <- 1 / values
newx <- x * mult
newy <- y * mult
return(c(newx, newy))
}
recalc(0.7177853, 0.3038550)
[1] 0.7025812 0.2974188
Если ваши данные хранятся в кадре данных, мы можем Vectorize
функцию:
df <- data.frame(
x = c(0.7177853, 0.7677853, 0.5177853),
y = c(0.3038550, 0.438550, 0.7038550)
)
newfunc <- Vectorize(recalc)
newfunc(x = df$x, y = df$y)
[,1] [,2] [,3]
[1,] 0.7025812 0.6364609 0.4238443
[2,] 0.2974188 0.3635391 0.5761557
Вы хотите это, я думаю.