So I have a data-frame structured as:
> head(peakQ)
STATION_NUMBER DATA_TYPE YEAR PEAK_CODE PRECISION_CODE MONTH DAY HOUR MINUTE TIME_ZONE PEAK SYMBOL
1 05EE006 Q 1983 H NA 6 29 5 18 MST 1.980
2 05EE006 Q 1985 H NA 4 2 0 0 MST 1.380 B
3 05EE006 Q 1986 H NA 3 30 13 37 MST 2.640
4 05EE006 Q 1987 H NA 4 5 21 2 MST 1.590 B
5 05EE006 Q 1989 H NA 10 22 2 45 MST 0.473
6 05EE006 Q 1990 H NA 4 2 4 2 MST 1.470
I want to drop the columns; STATION_NUMBER, DATA_TYPE, PEAK_CODE, PRECISION_CODE
But, I want to assume that I know only the column names and not their index.
I already know that it is trivial to use indexes, such as:
> head(peakQ[, -c(1, 2, 4, 5)])
YEAR MONTH DAY HOUR MINUTE TIME_ZONE PEAK SYMBOL
1 1983 6 29 5 18 MST 1.980
2 1985 4 2 0 0 MST 1.380 B
3 1986 3 30 13 37 MST 2.640
4 1987 4 5 21 2 MST 1.590 B
5 1989 10 22 2 45 MST 0.473
6 1990 4 2 4 2 MST 1.470
but, why do I get an error using column names? and, what is the workaround?
> head(peakQ[, -c("STATION_NUMBER", "DATA_TYPE", "PEAK_CODE", "PRECISION_CODE")])
Error in -c("STATION_NUMBER", "DATA_TYPE", "PEAK_CODE", "PRECISION_CODE") :
invalid argument to unary operator
I am especially confused because the opposite operation works just fine.
> head(peakQ[, c("STATION_NUMBER", "DATA_TYPE", "PEAK_CODE", "PRECISION_CODE")])
STATION_NUMBER DATA_TYPE PEAK_CODE PRECISION_CODE
1 05EE006 Q H NA
2 05EE006 Q H NA
3 05EE006 Q H NA
4 05EE006 Q H NA
5 05EE006 Q H NA
6 05EE006 Q H NA
Any help and/or a deeper explanation is appreciated.