[R] Replacing values in a dataframe depending on several conditions

Berend Hasselman bhh at xs4all.nl
Fri May 10 11:40:19 CEST 2013


On 10-05-2013, at 10:59, KatrinH Heimann <katrinheimann at gmail.com> wrote:

> Dear all,
> 
> I would like to replace some values in a dataframe (including the columns
> Action, Interval and Artificiality) depending on a combination of different
> conditions
> 
> the command I tried is
> 
> for (j in 1:nrow(data))
> 
> {
> 
> if ((data[j,data$Action]=="s") & (data[j,data$Interval]=="l") & (data[j,data
> $Artificiality]!="a")) {data[j,data$Artificiality]<-"na"}
> 
> else {
> 
> if ((data[j,data$Action]=="l") & (data[j,data$Interval]=="s") & (data[j,data
> $Artificiality]!="a")) {data[j,data$Artificiality]<-"na"}
> 
> }
> 
> }
> 
> R does not give me an error message, but it is also not doing anything...
> can somebody be of help?

Don't use data$Columnname to access the relevant column (it's most likely empty).
Use

data[j,"Action"]

etc. See ?"[.data.frame" (which you can also find with ?"Extract" and navigate).

And don't use data as name of your variable.
Do ?data to find out why.

Why are you using "na"? NA seems more appropriate.

Berend



More information about the R-help mailing list