Это действительно относится к stackoverflow, но вот кое-что, что может дать вам несколько указателей:
t1 <- "SAMPN expwgt ROUTE VEH1 VEH2 VEH3
1 5 AB MT-..1 MT-..2 NA
2 9 AC MT-..1 MT-..2 MT-..3
3 3 BC MT-..2 MT-..3 NA
4 3 BA MT-..2 MT-..1 NA
5 4 CA MT-..3 MT-..2 MT-..1
6 4 CB MT-..3 MT-..4 NA
7 2 CA MT-..4 NA NA"
indat <- read.table(textConnection(t1), header = TRUE)
colvf <- 4 # column of first VEH in indat
colvl <- 6 # column of last VEH in indat
tapply( rep( indat$expwgt, colvl-colvf ),
list( as.matrix(indat[ ,colvf:(colvl-1)]),
as.matrix(indat[ ,(colvf+1):colvl]) ), sum)
, который производит
MT-..1 MT-..2 MT-..3 MT-..4
MT-..1 NA 14 NA NA
MT-..2 7 NA 12 NA
MT-..3 NA 4 NA 4
MT-..4 NA NA NA NA