Hi everyone,
I have a data frame that looks *sort of* like this:

name <- letters[1:5]
signal.1 <- c("12", "bad signal", "noise", "10", "X")
length.signal.1 <- 5:9
intensity.signal.1 <- 3:7
signal.2 <- c("13", "noise", "19.2", "X", "V")
length.signal.2 <- 2:6
intensity.signal.2 <- 1:5
signal.3 <- c("NA", "15.4", "error", "NA", "17")
length.signal.3 <- c("NA", 2, 3, "NA", 4)
intensity.signal.3 <- c("NA",4, 5, "NA", 5)

#(there are actually up to 16 signals and 50 names, but I made this short
for the example)

df <- data.frame(cbind(name, signal.1, length.signal.1, intensity.signal.1,
signal.2,
                       length.signal.2, intensity.signal.2, signal.3,
length.signal.3,
                       intensity.signal.3))



I need to "fish out" some values and have them in a new data frame.

I am only interested in values in columns 2, 5 and 8 (actually seq(2, 50, 3)
in my real df)
I want the values that are not:
"bad signal"
"noise"
"error"
"NA"
"V"

This is the output I want (the name column is unimportant for my purposes,
its just there as a reference for the example).

(name)  S1       S2
A        12        13
B        15.4     (another value found in the other signals >3 not shown on
example)
C        19.2     (another value found in the other signals >3 not shown on
example)
D        10        X
E        X         17

I do know that there will always be 2 values exactly that do not match the
exclusions named above, or none at all

I have tried different approaches, grep, matching,%nin%... But as I am not
an advanced used, I am very likely doing something wrong, because I either
get a vector, or I get a matrix with TRUE FALSE, and usually I get the whole
rows, and I don't want that :(
I have also being searching the list for answers without avail.
Any suggestions? Examples including syntax are appreciated (syntax is a
major weak point for me).


Laura

	[[alternative HTML version deleted]]

