[R] Excluding data with apply
David Winsemius
dwinsemius at comcast.net
Thu Jan 8 20:08:19 CET 2009
Well, testing would have been wise.. The last variable in the sample
dataframe had 5 elements and the use "negation" of a character vector
is not proper.
> df[ , -c("a","d")]
Error in -c("a", "d") : invalid argument to unary operator
So if you limit yourself to negative indexing of numeric references to
columns, you should be OK.
df <- data.frame(a=LETTERS[1:4], b= rnorm(4), c=rnorm(4), d=
letters[5:8])
df[ , -c(1,4)]
b c
1 0.6056003 -0.002843621
2 0.3949298 0.206188106
3 -0.5362161 -1.381615740
4 0.2826662 0.016430970
> apply(df[,-c(1,4)] , 2, sum)
b c
0.7469803 -1.1618403
The subset function might also be useful if one preferred to use
column names.
> subset(df, select=c("b","c"))
b c
1 0.6056003 -0.002843621
2 0.3949298 0.206188106
3 -0.5362161 -1.381615740
4 0.2826662 0.016430970
> apply(subset(df, select=c("b","c")), 2, sum)
b c
0.7469803 -1.1618403
--
David Winsemius
On Jan 8, 2009, at 12:26 PM, David Winsemius wrote:
> Using indexing and putting a minus sign in front of a vector of
> column names that you want to exclude would be a typical approach:
>
> df <- data.frame(a=LETTERS[1:4], b= rnorm(4), c=rnorm(4), d=
> letters[5:9])
>
> apply(df[ , -c("a","d")], 2, sum)
>
> (Pretty sure this will run properly but don't have R up an runnign
> to test it.)
>
>
>
> --
> David Winsemius
>
> On Jan 8, 2009, at 5:52 AM, Christian Kamenik wrote:
>
>> Dear all,
>>
>> 'Apply' is a great thing for running functions on rows or columns
>> of a matrix:
>>
>> X <- rnorm(20, mean = 0, sd = 1)
>> dim(X) <- c(5,4)
>> apply(X,2,sum)
>>
>> Is there a way to use apply for excluding rows or columns from a
>> matrix to run functions on the remaining rows or columns? I know, I
>> could do this with a 'for' loop, but 'apply' would be much easier
>> and quicker, and require less programming...
>>
>> Cheers, Christian
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list