Hi r-help-boun...@r-project.org napsal dne 17.06.2009 07:51:27:
> > 2 - is.na(a) - it's superb! but I need call a function: wy[i]<- > ifelse(((is.na(a))), call_fun1(x), call_fun2(x) You did not grasp how to use ifelse. It goes not cycle through logical vector is.na(a). from help page Arguments test an object which can be coerced to logical mode. yes return values for true elements of test. no return values for false elements of test. Details If yes or no are too short, their elements are recycled. yes will be evaluated if and only if any element of test is true, and analogously for no. Missing values in test give missing values in the result. Value A vector of the same length and attributes (including class) as test and data values from the values of yes or no. The mode of the answer will be coerced from logical to accommodate first any values taken from yes and then any values taken from no. so for one call ifelse(a, b, c) you will get one vector of responses which are b for TRUE values of a and c for false values of a. You want to put this vector to one slot in wy (wy[i]) for which you will get warning. If your call_fun(x) returns scalar you get as a result of this ifelse(((is.na(a))), call_fun1(x), call_fun2(x) vector with length a. You can store it in a list or data frame. Regards Petr > > > > Gabor Grothendieck wrote: > > > > Try: > > > > 2 - is.na(a) > > > > > > On Tue, Jun 16, 2009 at 5:46 PM, Grześ<gregori...@gmail.com> wrote: > >> > >> Hi, > >> I have a vector a=c(NA, 3, 4, 4, NA, NA, 3) and I would like to use > >> is.na(a) > >> function to get a vector like this: > >> wy=(1,2,2,2,1,1,2) - you know, this vector create 1 or 2 depends on value > >> in > >> vector "a" > >> > >> This is my short code but something is wrong and I don't know what... > >> > >> for (i in 1:7){ > >> a=c( NA, 3, 4, 4, NA, NA, 3) > >> fun1=function(x){ > >> x=1 > >> print(x) > >> } > >> fun2=function(x){ > >> x=2 > >> print(x) > >> } > >> wy[i]<- ifelse(((is.na(a))), fun1(x), fun2(x)) > >> } > >> [1] 1 > >> [1] 2 > >> [1] 1 > >> [1] 2 > >> [1] 1 > >> [1] 2 > >> [1] 1 > >> [1] 2 > >> [1] 1 > >> [1] 2 > >> [1] 1 > >> [1] 2 > >> [1] 1 > >> [1] 2 > >> and I get a lots of warnings: > >> Warning messages: > >> 1: In wy[i] <- ifelse(((is.na(a))), fun1(x), fun2(x)) : > >> number of items to replace is not a multiple of replacement length > >> 2: In wy[i] <- ifelse(((is.na(a))), fun1(x), fun2(x)) : > >> number of items to replace is not a multiple of replacement length... > >> > >> and as an result I get a vector only with 1 > >>> wy > >> [1] 1 1 1 1 1 1 1 > >> > >> I'll be very happy if someone help me > >> > >> -- > >> View this message in context: > >> http://www.nabble.com/ifelse%28is.na%29%2C-with-function-inside- > tp24063455p24063455.html > >> Sent from the R help mailing list archive at Nabble.com. > >> > >> ______________________________________________ > >> R-help@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@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. > > > > > > -- > View this message in context: http://www.nabble.com/ifelse%28is.na%29%2C-with- > function-inside-tp24063455p24067395.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@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@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.