Мне нравится использовать пакет data.table для таких вещей.Я не знаю, что делает ваша функция "GameSBWteamprobsum", поэтому вот упрощенное решение с использованием цепочки data.table:
library(data.table)
GameSBWteamprobsum <- function(x, ...){2*x}
DT <- data.table(HomeTeam=runif(10,1,10), HomePitcher=runif(10,1,10), AwayTeam=runif(10,1,10), AwayPitcher=runif(10,1,10), season=runif(10,1,10), date=runif(10,1,10))
DT[, "Hometeam" := GameSBWteamprobsum(HomeTeam, HomePitcher, season, date)][
, "AwayTeam" := GameSBWteamprobsum(AwayTeam, AwayPitcher, season, date)][
, "TOTprob" := sum(Hometeam, AwayTeam)][
, "HTWp" := Hometeam/TOTprob][
, "ATWp" := AwayTeam/TOTprob]
DT
Возможно, вы захотите взглянуть на секцию цепочки здесь
РЕДАКТИРОВАТЬ --------------------------------------------------------------------
Конечно, вы можете передать строку или подмножество строк в вашу функцию на основеусловие для одного или нескольких столбцов:
library(data.table)
GameSBWteamprobsum <- function(x){print(x)}
DT <- data.table(HomeTeam=LETTERS[1:10], HomePitcher=runif(10,1,10), AwayTeam=runif(10,1,10), AwayPitcher=runif(10,1,10), season=runif(10,1,10), date=runif(10,1,10))
GameSBWteamprobsum(DT[HomeTeam == "A"])