[R] recode based on filter

Donatas G. dgvirtual at akl.lt
Wed Dec 19 12:51:22 CET 2007


Hi, I have a data frame DATA, which (simplified of course) looks like this:

know1 = c("Y","N","N","Y","N","N","Y","Y","N")
par1=c(1,4,5,3,3,2,3,3,5)
know2 = c("Y","Y","N","Y","N","N","N","Y","Y")
par2=c(3,4,4,3,5,2,4,3,2)
DATA=data.frame(know1,par1,know2,par2)

it represents answers in a questionnaire, where respondents evaluate two 
things (par1 and par2) but they also indicate, whether they have detailed 
knowledge about those two things (know1 and know2).

I need to test correlations between parameters par1 and par2, but need to do 
that separately for cases where the respondents know about both things and 
where they do not know about both things. If, testing correlations of those 
who do know, a respondent knows only about item1 and not item2 (if the 
responces do not match), the values of par1 and par2 should be changed to 
NA's. The same goes if the respondent says he does not know only about one 
thing.

SO: Before doing analysis, I need to transform the DATA dataframe in two ways:

Testing correlations of those evaluating with knowledge:

> DATA
  know1 par1 know2 par2
1     Y    1     Y    3
2     N    NA    Y    NA
3     N    NA    N    NA
4     Y    3     Y    3
5     N    NA    N    NA
6     N    NA    N    NA
7     Y    NA    N    NA
8     Y    3     Y    3
9     N    NA    Y    NA

And the case of those evaluating without knowledge:

> DATA
  know1 par1 know2 par2
1     Y    NA    Y    NA
2     N    NA    Y    NA
3     N    5     N    4
4     Y    NA    Y    NA
5     N    3     N    5
6     N    2     N    2
7     Y    NA    N    NA
8     Y    NA    Y    NA
9     N    NA    Y    NA

Yes, yes, this example is stupid, but...

I know how to filter records, I know how to recode, but I need some 
combination of the two here and I am lost.. Any ideas?

-- 
Donatas Glodenis
http://dg.lapas.info



More information about the R-help mailing list