if else statement for rain data to define zero for dry and one to wet

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

if else statement for rain data to define zero for dry and one to wet

roslinazairimah zakaria
Dear r-users,

I have a set of rain data:

X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960 X1961
X1962

1   0.0   0.0  14.3   0.0  13.5  13.2   4.0     0   3.3     0     0   0.0


2   0.0   0.0  21.9   0.0  10.9   6.6   2.1     0   0.0     0     0   0.0


3  25.3   6.7  18.6   0.8   2.3   0.0   8.0     0   0.0     0     0  11.0


4  12.7   3.4  37.2   0.9   8.4   0.0   5.8     0   0.0     0     0   5.5


5   0.0   0.0  58.3   3.6  21.1   4.2   3.0     0   0.0     0     0  15.9


I would like to go through each column and define each cell with value
greater than 0.1 mm will be 1 and else zero. Hence I would like to attach
the rain data and the category side by side:


1950   state

1 0.0    0

2 0.0    0

3 25.3   1

4 12.7   1

5 0.0    0


...


This is my code:


wet_dry  <- function(dt)

{ cl   <- length(dt)

  tresh  <- 0.1


  for (i in 1:cl)

  {  xi <- dt[,i]

     if (xi < tresh ) 0 else 1

  }

dd <- cbind(dt,xi)

dd

}


wet_dry(dt)


Results:

> wet_dry(dt)

   X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960 X1961
X1962 X1963 X1964 X1965 X1966 X1967 X1968 X1969 X1970 X1971 X1972 X1973
X1974 X1975 X1976 X1977

1    0.0   0.0  14.3   0.0  13.5  13.2   4.0   0.0   3.3   0.0   0.0   0.0
  4.2   0.0   2.2   0.0   4.4   5.1     0   7.2   0.0   0.0   0.0   5.1
0   0.0     0   0.3

2    0.0   0.0  21.9   0.0  10.9   6.6   2.1   0.0   0.0   0.0   0.0   0.0
  8.4   0.0   4.0   0.0   4.9   0.7     0   0.0   0.0   0.0   0.0   5.4
0   3.3     0   0.3

3   25.3   6.7  18.6   0.8   2.3   0.0   8.0   0.0   0.0   0.0   0.0  11.0
  4.2   0.0   2.0   0.0  14.2  17.1     0   0.0   0.0   0.0   0.0   2.1
0   1.7     0   4.4

4   12.7   3.4  37.2   0.9   8.4   0.0   5.8   0.0   0.0   0.0   0.0   5.5
  0.0   0.0   5.4   0.0   6.4  14.9     0  10.1   2.9 143.4   0.0   6.1
0   0.0     0  33.5


It does not work and give me the original data.  Why is that?


Thank you so much for your help.

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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.
Reply | Threaded
Open this post in threaded view
|

Re: if else statement for rain data to define zero for dry and one to wet

PIKAL Petr
Hi

I will not inspect your function as it is corrupted by HTML posting.

If your data frame is named rain

newrain <- (rain>.1)*1

gives you new data frame with reqired coding.

However I am not sure, what do you want to do next. Do you want to merge those 2 data frames so as coded column is beside original column? Why? What do you want to do with such merged data? It seems to me without sense.

Cheers
Petr


> -----Original Message-----
> From: R-help [mailto:[hidden email]] On Behalf Of
> roslinazairimah zakaria
> Sent: Friday, June 05, 2015 10:49 AM
> To: [hidden email]
> Subject: [R] if else statement for rain data to define zero for dry and
> one to wet
>
> Dear r-users,
>
> I have a set of rain data:
>
> X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960 X1961
> X1962
>
> 1   0.0   0.0  14.3   0.0  13.5  13.2   4.0     0   3.3     0     0
> 0.0
>
>
> 2   0.0   0.0  21.9   0.0  10.9   6.6   2.1     0   0.0     0     0
> 0.0
>
>
> 3  25.3   6.7  18.6   0.8   2.3   0.0   8.0     0   0.0     0     0
> 11.0
>
>
> 4  12.7   3.4  37.2   0.9   8.4   0.0   5.8     0   0.0     0     0
> 5.5
>
>
> 5   0.0   0.0  58.3   3.6  21.1   4.2   3.0     0   0.0     0     0
> 15.9
>
>
> I would like to go through each column and define each cell with value
> greater than 0.1 mm will be 1 and else zero. Hence I would like to
> attach the rain data and the category side by side:
>
>
> 1950   state
>
> 1 0.0    0
>
> 2 0.0    0
>
> 3 25.3   1
>
> 4 12.7   1
>
> 5 0.0    0
>
>
> ...
>
>
> This is my code:
>
>
> wet_dry  <- function(dt)
>
> { cl   <- length(dt)
>
>   tresh  <- 0.1
>
>
>   for (i in 1:cl)
>
>   {  xi <- dt[,i]
>
>      if (xi < tresh ) 0 else 1
>
>   }
>
> dd <- cbind(dt,xi)
>
> dd
>
> }
>
>
> wet_dry(dt)
>
>
> Results:
>
> > wet_dry(dt)
>
>    X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960
> X1961
> X1962 X1963 X1964 X1965 X1966 X1967 X1968 X1969 X1970 X1971 X1972 X1973
> X1974 X1975 X1976 X1977
>
> 1    0.0   0.0  14.3   0.0  13.5  13.2   4.0   0.0   3.3   0.0   0.0
> 0.0
>   4.2   0.0   2.2   0.0   4.4   5.1     0   7.2   0.0   0.0   0.0   5.1
> 0   0.0     0   0.3
>
> 2    0.0   0.0  21.9   0.0  10.9   6.6   2.1   0.0   0.0   0.0   0.0
> 0.0
>   8.4   0.0   4.0   0.0   4.9   0.7     0   0.0   0.0   0.0   0.0   5.4
> 0   3.3     0   0.3
>
> 3   25.3   6.7  18.6   0.8   2.3   0.0   8.0   0.0   0.0   0.0   0.0
> 11.0
>   4.2   0.0   2.0   0.0  14.2  17.1     0   0.0   0.0   0.0   0.0   2.1
> 0   1.7     0   4.4
>
> 4   12.7   3.4  37.2   0.9   8.4   0.0   5.8   0.0   0.0   0.0   0.0
> 5.5
>   0.0   0.0   5.4   0.0   6.4  14.9     0  10.1   2.9 143.4   0.0   6.1
> 0   0.0     0  33.5
>
>
> It does not work and give me the original data.  Why is that?
>
>
> Thank you so much for your help.
>
>       [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> 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.

________________________________
Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a jsou určeny pouze jeho adresátům.
Jestliže jste obdržel(a) tento e-mail omylem, informujte laskavě neprodleně jeho odesílatele. Obsah tohoto emailu i s přílohami a jeho kopie vymažte ze svého systému.
Nejste-li zamýšleným adresátem tohoto emailu, nejste oprávněni tento email jakkoliv užívat, rozšiřovat, kopírovat či zveřejňovat.
Odesílatel e-mailu neodpovídá za eventuální škodu způsobenou modifikacemi či zpožděním přenosu e-mailu.

V případě, že je tento e-mail součástí obchodního jednání:
- vyhrazuje si odesílatel právo ukončit kdykoliv jednání o uzavření smlouvy, a to z jakéhokoliv důvodu i bez uvedení důvodu.
- a obsahuje-li nabídku, je adresát oprávněn nabídku bezodkladně přijmout; Odesílatel tohoto e-mailu (nabídky) vylučuje přijetí nabídky ze strany příjemce s dodatkem či odchylkou.
- trvá odesílatel na tom, že příslušná smlouva je uzavřena teprve výslovným dosažením shody na všech jejích náležitostech.
- odesílatel tohoto emailu informuje, že není oprávněn uzavírat za společnost žádné smlouvy s výjimkou případů, kdy k tomu byl písemně zmocněn nebo písemně pověřen a takové pověření nebo plná moc byly adresátovi tohoto emailu případně osobě, kterou adresát zastupuje, předloženy nebo jejich existence je adresátovi či osobě jím zastoupené známá.

This e-mail and any documents attached to it may be confidential and are intended only for its intended recipients.
If you received this e-mail by mistake, please immediately inform its sender. Delete the contents of this e-mail with all attachments and its copies from your system.
If you are not the intended recipient of this e-mail, you are not authorized to use, disseminate, copy or disclose this e-mail in any manner.
The sender of this e-mail shall not be liable for any possible damage caused by modifications of the e-mail or by delay with transfer of the email.

In case that this e-mail forms part of business dealings:
- the sender reserves the right to end negotiations about entering into a contract in any time, for any reason, and without stating any reasoning.
- if the e-mail contains an offer, the recipient is entitled to immediately accept such offer; The sender of this e-mail (offer) excludes any acceptance of the offer on the part of the recipient containing any amendment or variation.
- the sender insists on that the respective contract is concluded only upon an express mutual agreement on all its aspects.
- the sender of this e-mail informs that he/she is not authorized to enter into any contracts on behalf of the company except for cases in which he/she is expressly authorized to do so in writing, and such authorization or power of attorney is submitted to the recipient or the person represented by the recipient, or the existence of such authorization is known to the recipient of the person represented by the recipient.
______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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.
Reply | Threaded
Open this post in threaded view
|

Re: if else statement for rain data to define zero for dry and one to wet

John Kane
In reply to this post by roslinazairimah zakaria
Please do not post in HTML. It made your posting unreadable.  R-help is a plain text list and when it removes all the HTML tags often the result is gibberish

Have a look at http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example and http://adv-r.had.co.nz/Reproducibility.html for some suggestions on how to post to R-help.


John Kane
Kingston ON Canada


> -----Original Message-----
> From: [hidden email]
> Sent: Fri, 5 Jun 2015 16:49:08 +0800
> To: [hidden email]
> Subject: [R] if else statement for rain data to define zero for dry and
> one to wet
>
> Dear r-users,
>
> I have a set of rain data:
>
> X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960 X1961
> X1962
>
> 1   0.0   0.0  14.3   0.0  13.5  13.2   4.0     0   3.3     0     0   0.0
>
>
> 2   0.0   0.0  21.9   0.0  10.9   6.6   2.1     0   0.0     0     0   0.0
>
>
> 3  25.3   6.7  18.6   0.8   2.3   0.0   8.0     0   0.0     0     0  11.0
>
>
> 4  12.7   3.4  37.2   0.9   8.4   0.0   5.8     0   0.0     0     0   5.5
>
>
> 5   0.0   0.0  58.3   3.6  21.1   4.2   3.0     0   0.0     0     0  15.9
>
>
> I would like to go through each column and define each cell with value
> greater than 0.1 mm will be 1 and else zero. Hence I would like to attach
> the rain data and the category side by side:
>
>
> 1950   state
>
> 1 0.0    0
>
> 2 0.0    0
>
> 3 25.3   1
>
> 4 12.7   1
>
> 5 0.0    0
>
>
> ...
>
>
> This is my code:
>
>
> wet_dry  <- function(dt)
>
> { cl   <- length(dt)
>
>   tresh  <- 0.1
>
>
>   for (i in 1:cl)
>
>   {  xi <- dt[,i]
>
>      if (xi < tresh ) 0 else 1
>
>   }
>
> dd <- cbind(dt,xi)
>
> dd
>
> }
>
>
> wet_dry(dt)
>
>
> Results:
>
>> wet_dry(dt)
>
>    X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960
> X1961
> X1962 X1963 X1964 X1965 X1966 X1967 X1968 X1969 X1970 X1971 X1972 X1973
> X1974 X1975 X1976 X1977
>
> 1    0.0   0.0  14.3   0.0  13.5  13.2   4.0   0.0   3.3   0.0   0.0
> 0.0
>   4.2   0.0   2.2   0.0   4.4   5.1     0   7.2   0.0   0.0   0.0   5.1
> 0   0.0     0   0.3
>
> 2    0.0   0.0  21.9   0.0  10.9   6.6   2.1   0.0   0.0   0.0   0.0
> 0.0
>   8.4   0.0   4.0   0.0   4.9   0.7     0   0.0   0.0   0.0   0.0   5.4
> 0   3.3     0   0.3
>
> 3   25.3   6.7  18.6   0.8   2.3   0.0   8.0   0.0   0.0   0.0   0.0
> 11.0
>   4.2   0.0   2.0   0.0  14.2  17.1     0   0.0   0.0   0.0   0.0   2.1
> 0   1.7     0   4.4
>
> 4   12.7   3.4  37.2   0.9   8.4   0.0   5.8   0.0   0.0   0.0   0.0
> 5.5
>   0.0   0.0   5.4   0.0   6.4  14.9     0  10.1   2.9 143.4   0.0   6.1
> 0   0.0     0  33.5
>
>
> It does not work and give me the original data.  Why is that?
>
>
> Thank you so much for your help.
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> 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.

____________________________________________________________
Can't remember your password? Do you need a strong and secure password?
Use Password manager! It stores your passwords & protects your account.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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.
Reply | Threaded
Open this post in threaded view
|

Re: if else statement for rain data to define zero for dry and one to wet

Jim Lemon-4
Hi rosalinazairimah,
I think the problem is that you are using "if" instead of "ifelse". Try this:

wet_dry<-function(x,thresh=0.1) {
 for(column in 1:dim(x)[2]) x[,column]<-ifelse(x[,column]>=thresh,1,0)
 return(x)
}
wet_dry(dt)

and see what you get.

Also, why can I read your message perfectly while everybody else can't?

Jim

>> -----Original Message-----
>> From: [hidden email]
>> Sent: Fri, 5 Jun 2015 16:49:08 +0800
>> To: [hidden email]
>> Subject: [R] if else statement for rain data to define zero for dry and
>> one to wet
>>
>> Dear r-users,
>>
>> I have a set of rain data:
>>
>> X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960 X1961
>> X1962
>>
>> 1   0.0   0.0  14.3   0.0  13.5  13.2   4.0     0   3.3     0     0   0.0
>>
>>
>> 2   0.0   0.0  21.9   0.0  10.9   6.6   2.1     0   0.0     0     0   0.0
>>
>>
>> 3  25.3   6.7  18.6   0.8   2.3   0.0   8.0     0   0.0     0     0  11.0
>>
>>
>> 4  12.7   3.4  37.2   0.9   8.4   0.0   5.8     0   0.0     0     0   5.5
>>
>>
>> 5   0.0   0.0  58.3   3.6  21.1   4.2   3.0     0   0.0     0     0  15.9
>>
>>
>> I would like to go through each column and define each cell with value
>> greater than 0.1 mm will be 1 and else zero. Hence I would like to attach
>> the rain data and the category side by side:
>>
>>
>> 1950   state
>>
>> 1 0.0    0
>>
>> 2 0.0    0
>>
>> 3 25.3   1
>>
>> 4 12.7   1
>>
>> 5 0.0    0
>>
>>
>> ...
>>
>>
>> This is my code:
>>
>>
>> wet_dry  <- function(dt)
>>
>> { cl   <- length(dt)
>>
>>   tresh  <- 0.1
>>
>>
>>   for (i in 1:cl)
>>
>>   {  xi <- dt[,i]
>>
>>      if (xi < tresh ) 0 else 1
>>
>>   }
>>
>> dd <- cbind(dt,xi)
>>
>> dd
>>
>> }
>>
>>
>> wet_dry(dt)
>>
>>
>> Results:
>>
>>> wet_dry(dt)
>>
>>    X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960
>> X1961
>> X1962 X1963 X1964 X1965 X1966 X1967 X1968 X1969 X1970 X1971 X1972 X1973
>> X1974 X1975 X1976 X1977
>>
>> 1    0.0   0.0  14.3   0.0  13.5  13.2   4.0   0.0   3.3   0.0   0.0
>> 0.0
>>   4.2   0.0   2.2   0.0   4.4   5.1     0   7.2   0.0   0.0   0.0   5.1
>> 0   0.0     0   0.3
>>
>> 2    0.0   0.0  21.9   0.0  10.9   6.6   2.1   0.0   0.0   0.0   0.0
>> 0.0
>>   8.4   0.0   4.0   0.0   4.9   0.7     0   0.0   0.0   0.0   0.0   5.4
>> 0   3.3     0   0.3
>>
>> 3   25.3   6.7  18.6   0.8   2.3   0.0   8.0   0.0   0.0   0.0   0.0
>> 11.0
>>   4.2   0.0   2.0   0.0  14.2  17.1     0   0.0   0.0   0.0   0.0   2.1
>> 0   1.7     0   4.4
>>
>> 4   12.7   3.4  37.2   0.9   8.4   0.0   5.8   0.0   0.0   0.0   0.0
>> 5.5
>>   0.0   0.0   5.4   0.0   6.4  14.9     0  10.1   2.9 143.4   0.0   6.1
>> 0   0.0     0  33.5
>>
>>
>> It does not work and give me the original data.  Why is that?
>>
>>
>> Thank you so much for your help.
>>
>>       [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
>> 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.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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.
Reply | Threaded
Open this post in threaded view
|

Re: if else statement for rain data to define zero for dry and one to wet

roslinazairimah zakaria
Thank you jim.

On Saturday, June 6, 2015, Jim Lemon <[hidden email]> wrote:

> Hi rosalinazairimah,
> I think the problem is that you are using "if" instead of "ifelse". Try
> this:
>
> wet_dry<-function(x,thresh=0.1) {
>  for(column in 1:dim(x)[2]) x[,column]<-ifelse(x[,column]>=thresh,1,0)
>  return(x)
> }
> wet_dry(dt)
>
> and see what you get.
>
> Also, why can I read your message perfectly while everybody else can't?
>
> Jim
>
> >> -----Original Message-----
> >> From: [hidden email] <javascript:;>
> >> Sent: Fri, 5 Jun 2015 16:49:08 +0800
> >> To: [hidden email] <javascript:;>
> >> Subject: [R] if else statement for rain data to define zero for dry and
> >> one to wet
> >>
> >> Dear r-users,
> >>
> >> I have a set of rain data:
> >>
> >> X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960 X1961
> >> X1962
> >>
> >> 1   0.0   0.0  14.3   0.0  13.5  13.2   4.0     0   3.3     0     0
>  0.0
> >>
> >>
> >> 2   0.0   0.0  21.9   0.0  10.9   6.6   2.1     0   0.0     0     0
>  0.0
> >>
> >>
> >> 3  25.3   6.7  18.6   0.8   2.3   0.0   8.0     0   0.0     0     0
> 11.0
> >>
> >>
> >> 4  12.7   3.4  37.2   0.9   8.4   0.0   5.8     0   0.0     0     0
>  5.5
> >>
> >>
> >> 5   0.0   0.0  58.3   3.6  21.1   4.2   3.0     0   0.0     0     0
> 15.9
> >>
> >>
> >> I would like to go through each column and define each cell with value
> >> greater than 0.1 mm will be 1 and else zero. Hence I would like to
> attach
> >> the rain data and the category side by side:
> >>
> >>
> >> 1950   state
> >>
> >> 1 0.0    0
> >>
> >> 2 0.0    0
> >>
> >> 3 25.3   1
> >>
> >> 4 12.7   1
> >>
> >> 5 0.0    0
> >>
> >>
> >> ...
> >>
> >>
> >> This is my code:
> >>
> >>
> >> wet_dry  <- function(dt)
> >>
> >> { cl   <- length(dt)
> >>
> >>   tresh  <- 0.1
> >>
> >>
> >>   for (i in 1:cl)
> >>
> >>   {  xi <- dt[,i]
> >>
> >>      if (xi < tresh ) 0 else 1
> >>
> >>   }
> >>
> >> dd <- cbind(dt,xi)
> >>
> >> dd
> >>
> >> }
> >>
> >>
> >> wet_dry(dt)
> >>
> >>
> >> Results:
> >>
> >>> wet_dry(dt)
> >>
> >>    X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960
> >> X1961
> >> X1962 X1963 X1964 X1965 X1966 X1967 X1968 X1969 X1970 X1971 X1972 X1973
> >> X1974 X1975 X1976 X1977
> >>
> >> 1    0.0   0.0  14.3   0.0  13.5  13.2   4.0   0.0   3.3   0.0   0.0
> >> 0.0
> >>   4.2   0.0   2.2   0.0   4.4   5.1     0   7.2   0.0   0.0   0.0   5.1
> >> 0   0.0     0   0.3
> >>
> >> 2    0.0   0.0  21.9   0.0  10.9   6.6   2.1   0.0   0.0   0.0   0.0
> >> 0.0
> >>   8.4   0.0   4.0   0.0   4.9   0.7     0   0.0   0.0   0.0   0.0   5.4
> >> 0   3.3     0   0.3
> >>
> >> 3   25.3   6.7  18.6   0.8   2.3   0.0   8.0   0.0   0.0   0.0   0.0
> >> 11.0
> >>   4.2   0.0   2.0   0.0  14.2  17.1     0   0.0   0.0   0.0   0.0   2.1
> >> 0   1.7     0   4.4
> >>
> >> 4   12.7   3.4  37.2   0.9   8.4   0.0   5.8   0.0   0.0   0.0   0.0
> >> 5.5
> >>   0.0   0.0   5.4   0.0   6.4  14.9     0  10.1   2.9 143.4   0.0   6.1
> >> 0   0.0     0  33.5
> >>
> >>
> >> It does not work and give me the original data.  Why is that?
> >>
> >>
> >> Thank you so much for your help.
> >>
> >>       [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> [hidden email] <javascript:;> mailing list -- To UNSUBSCRIBE and
> more, see
> >> 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.
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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.
Reply | Threaded
Open this post in threaded view
|

Re: if else statement for rain data to define zero for dry and one to wet

djmuseR
In reply to this post by Jim Lemon-4
I'm sorry, but I have to take issue with this particular use case of
ifelse(). When the goal is to generate a logical vector, ifelse() is
very inefficient. It's better to apply a logical condition directly to
the object in question and multiply the result by 1 to make it
numeric/integer rather than logical.

To illustrate this, consider the following toy example. The function
f1 replicates the suggestion to apply ifelse() columnwise (with the
additional overhead of preallocating storage for the result), whereas
the function f2 applies the logical condition on the matrix itself
using vectorization, with the recognition that a matrix is an atomic
vector with a dim attribute.

set.seed(5290)

# 1000 x 1000 matrix
m <- matrix(sample(c(0, 0.05, 0.2), 1e6, replace = TRUE), ncol = 1000)

f1 <- function(mat)
  {
     newmat <- matrix(NA, ncol = ncol(mat), nrow = nrow(mat))
     for(i in seq_len(ncol(mat)))
         newmat[, i] <- ifelse(mat[, i] > 0.1, 1, 0)
     newmat
  }

f2 <- function(mat) 1 * (mat > 0.1)


On my system, I got

> system.time(m1 <- f1(m))
   user  system elapsed
   0.14    0.00    0.14

> system.time(m2 <- f2(m))
   user  system elapsed
   0.01    0.00    0.01

> identical(m1, m2)
[1] TRUE

The all too common practice of using  ifelse(condition, 1, 0) on an
atomic vector is easily replaced by 1 * (condition), where the result
of condition is a logical atomic object coerced to numeric.

To reduce memory, one should better define f2 as

f2 <- function(mat) 1L * (mat > 0.1)

but doing so in this example no longer creates identical objects since

> typeof(m1)
[1] "double"

Thus, f1 is not only inefficient in terms of execution time, it's also
inefficient in terms of storage.

Given several recent warnings in this forum about the inefficiency of
ifelse() and the dozens of times I've seen the idiom implemented in f1
as a solution over the last several years (to which I have likely
contributed in my distant past as an R-helper), I felt compelled to
say something about this practice, which BTW extends not just to 0/1
return values but to
0/x return values, where x is a nonzero real number.

Dennis


On Sat, Jun 6, 2015 at 12:50 AM, Jim Lemon <[hidden email]> wrote:

> Hi rosalinazairimah,
> I think the problem is that you are using "if" instead of "ifelse". Try this:
>
> wet_dry<-function(x,thresh=0.1) {
>  for(column in 1:dim(x)[2]) x[,column]<-ifelse(x[,column]>=thresh,1,0)
>  return(x)
> }
> wet_dry(dt)
>
> and see what you get.
>
> Also, why can I read your message perfectly while everybody else can't?
>
> Jim
>
>>> -----Original Message-----
>>> From: [hidden email]
>>> Sent: Fri, 5 Jun 2015 16:49:08 +0800
>>> To: [hidden email]
>>> Subject: [R] if else statement for rain data to define zero for dry and
>>> one to wet
>>>
>>> Dear r-users,
>>>
>>> I have a set of rain data:
>>>
>>> X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960 X1961
>>> X1962
>>>
>>> 1   0.0   0.0  14.3   0.0  13.5  13.2   4.0     0   3.3     0     0   0.0
>>>
>>>
>>> 2   0.0   0.0  21.9   0.0  10.9   6.6   2.1     0   0.0     0     0   0.0
>>>
>>>
>>> 3  25.3   6.7  18.6   0.8   2.3   0.0   8.0     0   0.0     0     0  11.0
>>>
>>>
>>> 4  12.7   3.4  37.2   0.9   8.4   0.0   5.8     0   0.0     0     0   5.5
>>>
>>>
>>> 5   0.0   0.0  58.3   3.6  21.1   4.2   3.0     0   0.0     0     0  15.9
>>>
>>>
>>> I would like to go through each column and define each cell with value
>>> greater than 0.1 mm will be 1 and else zero. Hence I would like to attach
>>> the rain data and the category side by side:
>>>
>>>
>>> 1950   state
>>>
>>> 1 0.0    0
>>>
>>> 2 0.0    0
>>>
>>> 3 25.3   1
>>>
>>> 4 12.7   1
>>>
>>> 5 0.0    0
>>>
>>>
>>> ...
>>>
>>>
>>> This is my code:
>>>
>>>
>>> wet_dry  <- function(dt)
>>>
>>> { cl   <- length(dt)
>>>
>>>   tresh  <- 0.1
>>>
>>>
>>>   for (i in 1:cl)
>>>
>>>   {  xi <- dt[,i]
>>>
>>>      if (xi < tresh ) 0 else 1
>>>
>>>   }
>>>
>>> dd <- cbind(dt,xi)
>>>
>>> dd
>>>
>>> }
>>>
>>>
>>> wet_dry(dt)
>>>
>>>
>>> Results:
>>>
>>>> wet_dry(dt)
>>>
>>>    X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960
>>> X1961
>>> X1962 X1963 X1964 X1965 X1966 X1967 X1968 X1969 X1970 X1971 X1972 X1973
>>> X1974 X1975 X1976 X1977
>>>
>>> 1    0.0   0.0  14.3   0.0  13.5  13.2   4.0   0.0   3.3   0.0   0.0
>>> 0.0
>>>   4.2   0.0   2.2   0.0   4.4   5.1     0   7.2   0.0   0.0   0.0   5.1
>>> 0   0.0     0   0.3
>>>
>>> 2    0.0   0.0  21.9   0.0  10.9   6.6   2.1   0.0   0.0   0.0   0.0
>>> 0.0
>>>   8.4   0.0   4.0   0.0   4.9   0.7     0   0.0   0.0   0.0   0.0   5.4
>>> 0   3.3     0   0.3
>>>
>>> 3   25.3   6.7  18.6   0.8   2.3   0.0   8.0   0.0   0.0   0.0   0.0
>>> 11.0
>>>   4.2   0.0   2.0   0.0  14.2  17.1     0   0.0   0.0   0.0   0.0   2.1
>>> 0   1.7     0   4.4
>>>
>>> 4   12.7   3.4  37.2   0.9   8.4   0.0   5.8   0.0   0.0   0.0   0.0
>>> 5.5
>>>   0.0   0.0   5.4   0.0   6.4  14.9     0  10.1   2.9 143.4   0.0   6.1
>>> 0   0.0     0  33.5
>>>
>>>
>>> It does not work and give me the original data.  Why is that?
>>>
>>>
>>> Thank you so much for your help.
>>>
>>>       [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
>>> 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.
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> 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.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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.
Reply | Threaded
Open this post in threaded view
|

Re: if else statement for rain data to define zero for dry and one to wet

William Dunlap
Your f1() has an unneeded for loop in it.
   f1a <- function(mat) mat > 0.1, 1, 0)
would do the same thing in a bit less time.

However, I think that a simple
   mat > 0.1
would be preferable.  The resulting TRUEs and FALSEs
are easier to interpret than the 1s and 0s that f1a()
produces and arithmetic functions treat them TRUE
as 1 and FALSE as 0 internally.  E.g., mean(mat>0.1)
gives the proportion of wet(tish) days.



Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Sat, Jun 6, 2015 at 1:55 PM, Dennis Murphy <[hidden email]> wrote:

> I'm sorry, but I have to take issue with this particular use case of
> ifelse(). When the goal is to generate a logical vector, ifelse() is
> very inefficient. It's better to apply a logical condition directly to
> the object in question and multiply the result by 1 to make it
> numeric/integer rather than logical.
>
> To illustrate this, consider the following toy example. The function
> f1 replicates the suggestion to apply ifelse() columnwise (with the
> additional overhead of preallocating storage for the result), whereas
> the function f2 applies the logical condition on the matrix itself
> using vectorization, with the recognition that a matrix is an atomic
> vector with a dim attribute.
>
> set.seed(5290)
>
> # 1000 x 1000 matrix
> m <- matrix(sample(c(0, 0.05, 0.2), 1e6, replace = TRUE), ncol = 1000)
>
> f1 <- function(mat)
>   {
>      newmat <- matrix(NA, ncol = ncol(mat), nrow = nrow(mat))
>      for(i in seq_len(ncol(mat)))
>          newmat[, i] <- ifelse(mat[, i] > 0.1, 1, 0)
>      newmat
>   }
>
> f2 <- function(mat) 1 * (mat > 0.1)
>
>
> On my system, I got
>
> > system.time(m1 <- f1(m))
>    user  system elapsed
>    0.14    0.00    0.14
>
> > system.time(m2 <- f2(m))
>    user  system elapsed
>    0.01    0.00    0.01
>
> > identical(m1, m2)
> [1] TRUE
>
> The all too common practice of using  ifelse(condition, 1, 0) on an
> atomic vector is easily replaced by 1 * (condition), where the result
> of condition is a logical atomic object coerced to numeric.
>
> To reduce memory, one should better define f2 as
>
> f2 <- function(mat) 1L * (mat > 0.1)
>
> but doing so in this example no longer creates identical objects since
>
> > typeof(m1)
> [1] "double"
>
> Thus, f1 is not only inefficient in terms of execution time, it's also
> inefficient in terms of storage.
>
> Given several recent warnings in this forum about the inefficiency of
> ifelse() and the dozens of times I've seen the idiom implemented in f1
> as a solution over the last several years (to which I have likely
> contributed in my distant past as an R-helper), I felt compelled to
> say something about this practice, which BTW extends not just to 0/1
> return values but to
> 0/x return values, where x is a nonzero real number.
>
> Dennis
>
>
> On Sat, Jun 6, 2015 at 12:50 AM, Jim Lemon <[hidden email]> wrote:
> > Hi rosalinazairimah,
> > I think the problem is that you are using "if" instead of "ifelse". Try
> this:
> >
> > wet_dry<-function(x,thresh=0.1) {
> >  for(column in 1:dim(x)[2]) x[,column]<-ifelse(x[,column]>=thresh,1,0)
> >  return(x)
> > }
> > wet_dry(dt)
> >
> > and see what you get.
> >
> > Also, why can I read your message perfectly while everybody else can't?
> >
> > Jim
> >
> >>> -----Original Message-----
> >>> From: [hidden email]
> >>> Sent: Fri, 5 Jun 2015 16:49:08 +0800
> >>> To: [hidden email]
> >>> Subject: [R] if else statement for rain data to define zero for dry and
> >>> one to wet
> >>>
> >>> Dear r-users,
> >>>
> >>> I have a set of rain data:
> >>>
> >>> X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960 X1961
> >>> X1962
> >>>
> >>> 1   0.0   0.0  14.3   0.0  13.5  13.2   4.0     0   3.3     0     0
>  0.0
> >>>
> >>>
> >>> 2   0.0   0.0  21.9   0.0  10.9   6.6   2.1     0   0.0     0     0
>  0.0
> >>>
> >>>
> >>> 3  25.3   6.7  18.6   0.8   2.3   0.0   8.0     0   0.0     0     0
> 11.0
> >>>
> >>>
> >>> 4  12.7   3.4  37.2   0.9   8.4   0.0   5.8     0   0.0     0     0
>  5.5
> >>>
> >>>
> >>> 5   0.0   0.0  58.3   3.6  21.1   4.2   3.0     0   0.0     0     0
> 15.9
> >>>
> >>>
> >>> I would like to go through each column and define each cell with value
> >>> greater than 0.1 mm will be 1 and else zero. Hence I would like to
> attach
> >>> the rain data and the category side by side:
> >>>
> >>>
> >>> 1950   state
> >>>
> >>> 1 0.0    0
> >>>
> >>> 2 0.0    0
> >>>
> >>> 3 25.3   1
> >>>
> >>> 4 12.7   1
> >>>
> >>> 5 0.0    0
> >>>
> >>>
> >>> ...
> >>>
> >>>
> >>> This is my code:
> >>>
> >>>
> >>> wet_dry  <- function(dt)
> >>>
> >>> { cl   <- length(dt)
> >>>
> >>>   tresh  <- 0.1
> >>>
> >>>
> >>>   for (i in 1:cl)
> >>>
> >>>   {  xi <- dt[,i]
> >>>
> >>>      if (xi < tresh ) 0 else 1
> >>>
> >>>   }
> >>>
> >>> dd <- cbind(dt,xi)
> >>>
> >>> dd
> >>>
> >>> }
> >>>
> >>>
> >>> wet_dry(dt)
> >>>
> >>>
> >>> Results:
> >>>
> >>>> wet_dry(dt)
> >>>
> >>>    X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960
> >>> X1961
> >>> X1962 X1963 X1964 X1965 X1966 X1967 X1968 X1969 X1970 X1971 X1972 X1973
> >>> X1974 X1975 X1976 X1977
> >>>
> >>> 1    0.0   0.0  14.3   0.0  13.5  13.2   4.0   0.0   3.3   0.0   0.0
> >>> 0.0
> >>>   4.2   0.0   2.2   0.0   4.4   5.1     0   7.2   0.0   0.0   0.0   5.1
> >>> 0   0.0     0   0.3
> >>>
> >>> 2    0.0   0.0  21.9   0.0  10.9   6.6   2.1   0.0   0.0   0.0   0.0
> >>> 0.0
> >>>   8.4   0.0   4.0   0.0   4.9   0.7     0   0.0   0.0   0.0   0.0   5.4
> >>> 0   3.3     0   0.3
> >>>
> >>> 3   25.3   6.7  18.6   0.8   2.3   0.0   8.0   0.0   0.0   0.0   0.0
> >>> 11.0
> >>>   4.2   0.0   2.0   0.0  14.2  17.1     0   0.0   0.0   0.0   0.0   2.1
> >>> 0   1.7     0   4.4
> >>>
> >>> 4   12.7   3.4  37.2   0.9   8.4   0.0   5.8   0.0   0.0   0.0   0.0
> >>> 5.5
> >>>   0.0   0.0   5.4   0.0   6.4  14.9     0  10.1   2.9 143.4   0.0   6.1
> >>> 0   0.0     0  33.5
> >>>
> >>>
> >>> It does not work and give me the original data.  Why is that?
> >>>
> >>>
> >>> Thank you so much for your help.
> >>>
> >>>       [[alternative HTML version deleted]]
> >>>
> >>> ______________________________________________
> >>> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> >>> 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.
> >
> > ______________________________________________
> > [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> > 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.
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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.
Reply | Threaded
Open this post in threaded view
|

Re: if else statement for rain data to define zero for dry and one to wet

roslinazairimah zakaria
Dear all,

All works well. Thank you so much for your help.

D## Function 1
wet_dry1 <- function(x,thresh=0.1)
 { for(column in 1:dim(x)[2]) x[,column] <- ifelse(x[,column]>=thresh,1,0)
 return(x)
 }

wet_dry1(dt)


## Function 2
wet_dry2 <- ( dt >= 0.1)*1
wet_dry2

wet_total <- colSums(wet_dry2)
pp <- wet_total/nrow(dt)
pp


## Function 3
rain <- dt
wet_dry3 <- ifelse(rain >= 0.1, 1, 0)
wet_dry3

On Sun, Jun 7, 2015 at 5:48 AM, William Dunlap <[hidden email]> wrote:

> Your f1() has an unneeded for loop in it.
>    f1a <- function(mat) mat > 0.1, 1, 0)
> would do the same thing in a bit less time.
>
> However, I think that a simple
>    mat > 0.1
> would be preferable.  The resulting TRUEs and FALSEs
> are easier to interpret than the 1s and 0s that f1a()
> produces and arithmetic functions treat them TRUE
> as 1 and FALSE as 0 internally.  E.g., mean(mat>0.1)
> gives the proportion of wet(tish) days.
>
>
>
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
>
> On Sat, Jun 6, 2015 at 1:55 PM, Dennis Murphy <[hidden email]> wrote:
>
>> I'm sorry, but I have to take issue with this particular use case of
>> ifelse(). When the goal is to generate a logical vector, ifelse() is
>> very inefficient. It's better to apply a logical condition directly to
>> the object in question and multiply the result by 1 to make it
>> numeric/integer rather than logical.
>>
>> To illustrate this, consider the following toy example. The function
>> f1 replicates the suggestion to apply ifelse() columnwise (with the
>> additional overhead of preallocating storage for the result), whereas
>> the function f2 applies the logical condition on the matrix itself
>> using vectorization, with the recognition that a matrix is an atomic
>> vector with a dim attribute.
>>
>> set.seed(5290)
>>
>> # 1000 x 1000 matrix
>> m <- matrix(sample(c(0, 0.05, 0.2), 1e6, replace = TRUE), ncol = 1000)
>>
>> f1 <- function(mat)
>>   {
>>      newmat <- matrix(NA, ncol = ncol(mat), nrow = nrow(mat))
>>      for(i in seq_len(ncol(mat)))
>>          newmat[, i] <- ifelse(mat[, i] > 0.1, 1, 0)
>>      newmat
>>   }
>>
>> f2 <- function(mat) 1 * (mat > 0.1)
>>
>>
>> On my system, I got
>>
>> > system.time(m1 <- f1(m))
>>    user  system elapsed
>>    0.14    0.00    0.14
>>
>> > system.time(m2 <- f2(m))
>>    user  system elapsed
>>    0.01    0.00    0.01
>>
>> > identical(m1, m2)
>> [1] TRUE
>>
>> The all too common practice of using  ifelse(condition, 1, 0) on an
>> atomic vector is easily replaced by 1 * (condition), where the result
>> of condition is a logical atomic object coerced to numeric.
>>
>> To reduce memory, one should better define f2 as
>>
>> f2 <- function(mat) 1L * (mat > 0.1)
>>
>> but doing so in this example no longer creates identical objects since
>>
>> > typeof(m1)
>> [1] "double"
>>
>> Thus, f1 is not only inefficient in terms of execution time, it's also
>> inefficient in terms of storage.
>>
>> Given several recent warnings in this forum about the inefficiency of
>> ifelse() and the dozens of times I've seen the idiom implemented in f1
>> as a solution over the last several years (to which I have likely
>> contributed in my distant past as an R-helper), I felt compelled to
>> say something about this practice, which BTW extends not just to 0/1
>> return values but to
>> 0/x return values, where x is a nonzero real number.
>>
>> Dennis
>>
>>
>> On Sat, Jun 6, 2015 at 12:50 AM, Jim Lemon <[hidden email]> wrote:
>> > Hi rosalinazairimah,
>> > I think the problem is that you are using "if" instead of "ifelse". Try
>> this:
>> >
>> > wet_dry<-function(x,thresh=0.1) {
>> >  for(column in 1:dim(x)[2]) x[,column]<-ifelse(x[,column]>=thresh,1,0)
>> >  return(x)
>> > }
>> > wet_dry(dt)
>> >
>> > and see what you get.
>> >
>> > Also, why can I read your message perfectly while everybody else can't?
>> >
>> > Jim
>> >
>> >>> -----Original Message-----
>> >>> From: [hidden email]
>> >>> Sent: Fri, 5 Jun 2015 16:49:08 +0800
>> >>> To: [hidden email]
>> >>> Subject: [R] if else statement for rain data to define zero for dry
>> and
>> >>> one to wet
>> >>>
>> >>> Dear r-users,
>> >>>
>> >>> I have a set of rain data:
>> >>>
>> >>> X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960
>> X1961
>> >>> X1962
>> >>>
>> >>> 1   0.0   0.0  14.3   0.0  13.5  13.2   4.0     0   3.3     0     0
>>  0.0
>> >>>
>> >>>
>> >>> 2   0.0   0.0  21.9   0.0  10.9   6.6   2.1     0   0.0     0     0
>>  0.0
>> >>>
>> >>>
>> >>> 3  25.3   6.7  18.6   0.8   2.3   0.0   8.0     0   0.0     0     0
>> 11.0
>> >>>
>> >>>
>> >>> 4  12.7   3.4  37.2   0.9   8.4   0.0   5.8     0   0.0     0     0
>>  5.5
>> >>>
>> >>>
>> >>> 5   0.0   0.0  58.3   3.6  21.1   4.2   3.0     0   0.0     0     0
>> 15.9
>> >>>
>> >>>
>> >>> I would like to go through each column and define each cell with value
>> >>> greater than 0.1 mm will be 1 and else zero. Hence I would like to
>> attach
>> >>> the rain data and the category side by side:
>> >>>
>> >>>
>> >>> 1950   state
>> >>>
>> >>> 1 0.0    0
>> >>>
>> >>> 2 0.0    0
>> >>>
>> >>> 3 25.3   1
>> >>>
>> >>> 4 12.7   1
>> >>>
>> >>> 5 0.0    0
>> >>>
>> >>>
>> >>> ...
>> >>>
>> >>>
>> >>> This is my code:
>> >>>
>> >>>
>> >>> wet_dry  <- function(dt)
>> >>>
>> >>> { cl   <- length(dt)
>> >>>
>> >>>   tresh  <- 0.1
>> >>>
>> >>>
>> >>>   for (i in 1:cl)
>> >>>
>> >>>   {  xi <- dt[,i]
>> >>>
>> >>>      if (xi < tresh ) 0 else 1
>> >>>
>> >>>   }
>> >>>
>> >>> dd <- cbind(dt,xi)
>> >>>
>> >>> dd
>> >>>
>> >>> }
>> >>>
>> >>>
>> >>> wet_dry(dt)
>> >>>
>> >>>
>> >>> Results:
>> >>>
>> >>>> wet_dry(dt)
>> >>>
>> >>>    X1950 X1951 X1952 X1953 X1954 X1955 X1956 X1957 X1958 X1959 X1960
>> >>> X1961
>> >>> X1962 X1963 X1964 X1965 X1966 X1967 X1968 X1969 X1970 X1971 X1972
>> X1973
>> >>> X1974 X1975 X1976 X1977
>> >>>
>> >>> 1    0.0   0.0  14.3   0.0  13.5  13.2   4.0   0.0   3.3   0.0   0.0
>> >>> 0.0
>> >>>   4.2   0.0   2.2   0.0   4.4   5.1     0   7.2   0.0   0.0   0.0
>>  5.1
>> >>> 0   0.0     0   0.3
>> >>>
>> >>> 2    0.0   0.0  21.9   0.0  10.9   6.6   2.1   0.0   0.0   0.0   0.0
>> >>> 0.0
>> >>>   8.4   0.0   4.0   0.0   4.9   0.7     0   0.0   0.0   0.0   0.0
>>  5.4
>> >>> 0   3.3     0   0.3
>> >>>
>> >>> 3   25.3   6.7  18.6   0.8   2.3   0.0   8.0   0.0   0.0   0.0   0.0
>> >>> 11.0
>> >>>   4.2   0.0   2.0   0.0  14.2  17.1     0   0.0   0.0   0.0   0.0
>>  2.1
>> >>> 0   1.7     0   4.4
>> >>>
>> >>> 4   12.7   3.4  37.2   0.9   8.4   0.0   5.8   0.0   0.0   0.0   0.0
>> >>> 5.5
>> >>>   0.0   0.0   5.4   0.0   6.4  14.9     0  10.1   2.9 143.4   0.0
>>  6.1
>> >>> 0   0.0     0  33.5
>> >>>
>> >>>
>> >>> It does not work and give me the original data.  Why is that?
>> >>>
>> >>>
>> >>> Thank you so much for your help.
>> >>>
>> >>>       [[alternative HTML version deleted]]
>> >>>
>> >>> ______________________________________________
>> >>> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
>> >>> 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.
>> >
>> > ______________________________________________
>> > [hidden email] mailing list -- To UNSUBSCRIBE and more, see
>> > 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.
>>
>> ______________________________________________
>> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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.