roslinazairimah zakaria
2015-Jun-05 08:49 UTC
[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]]
PIKAL Petr
2015-Jun-05 12:35 UTC
[R] if else statement for rain data to define zero for dry and one to wet
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:r-help-bounces at r-project.org] On Behalf Of > roslinazairimah zakaria > Sent: Friday, June 05, 2015 10:49 AM > To: r-help at r-project.org > 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]] > > ______________________________________________ > R-help at r-project.org 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.
John Kane
2015-Jun-05 13:41 UTC
[R] if else statement for rain data to define zero for dry and one to wet
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: roslinaump at gmail.com > Sent: Fri, 5 Jun 2015 16:49:08 +0800 > To: r-help at r-project.org > 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]] > > ______________________________________________ > R-help at r-project.org 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.
Jim Lemon
2015-Jun-06 07:50 UTC
[R] if else statement for rain data to define zero for dry and one to wet
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: roslinaump at gmail.com >> Sent: Fri, 5 Jun 2015 16:49:08 +0800 >> To: r-help at r-project.org >> 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]] >> >> ______________________________________________ >> R-help at r-project.org 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.