[R] passing an argument to a function which is also to be a dataframe column name
Gary Collins
collins.gs at gmail.com
Sun Dec 3 23:28:46 CET 2006
any suggestions on the following gratefully welcome,
I have a dataframe, which I am subsetting via labels
atpi[, creativity]
where (for example)
atpi = as.data.frame(matrix(1:50, ncol = 5, nrow = 10))
names(atpi) = c("Q1", "Q2", "Q3", "Q4", "Q5")
and
creativity = c("Q1", "Q3", "Q4")
I want to add an extra column to the dataframe atpi labelled "creativity",
which is the rowsum of these 3 columns. My problem is not the rowsum but
but the passing of an argument to a function, which is being used for subsetting
but also for labelling the rowsum column. I can do a one-off hack for
creativity,
but I want to generalise this, as I have numerous subsets
like creativity) to calculate and some pre-processiing (imputing
missing data etc)...
so I'm looking for something simple along the lines of
scoring = function(x, A){
x[, A] = rowSums(x[, A])
x
}
where a call such as
scoring(atpi, creativity)
would produce something along the lines of
> atpi
Q1 Q2 Q3 Q4 Q5 creativity
1 1 11 21 31 41 53
2 2 12 22 32 42 56
3 3 13 23 33 43 59
4 4 14 24 34 44 62
5 5 15 25 35 45 65
6 6 16 26 36 46 68
7 7 17 27 37 47 71
8 8 18 28 38 48 74
9 9 19 29 39 49 77
10 10 20 30 40 50 80
Thanks in advance
Gary
More information about the R-help
mailing list