[R] return one vector that is the sum of a list of vectors

David Winsemius dwinsemius at comcast.net
Mon Apr 9 08:09:15 CEST 2012


On Apr 9, 2012, at 12:01 AM, Frank Tamborello wrote:

> Dear R Help,
>
> I am attempting to write a function that  takes a list of variable  
> groups and a vector of numbers (e.g., "jtsv" would indicate one  
> group of variables, "jtsv1", "jtsv2", etc, each of which name a  
> variable in a data frame), and returns a list of variable group  
> sums. For example, given list("jtsv", "ptsv") and c(1:10), where  
> jtsv1, etc, are all numeric vectors of the same length, the function  
> should return a list of jtsv and ptsv, where
> jtsv <- jtsv1 + jtsv2 + jtsv3 + jtsv4 + jtsv5 + jtsv6 + jtsv7 +  
> jtsv8 + jtsv9 + jtsv10
> ptsv <- ptsv1 + ptsv2 + ptsv3 + ptsv4 + ptsv5 + ptsv6 + ptsv7 +  
> ptsv8 + ptsv9 + ptsv10
>
> So far I've used a for loop to paste together the names of the  
> variables as character vectors, so that I can at least name the  
> variables that I want to get, but I'm stuck on how to add together  
> the numeric vectors that those character vectors are ultimately  
> supposed to name. It seems like I should be able to map the  
> primitive "+" operator onto a list or vector that contains the  
> variable names. If that's a good way to go, what would that look  
> like? Or if that's not a good way to go, would someone please point  
> me in a good direction?
>

Perhaps (.... depending on detail not provided):

jtsv <- rowSums( dfrm[ , grep("jtsv", names(dfrm))] )

-- 

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list