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: roslina...@gmail.com >> Sent: Fri, 5 Jun 2015 16:49:08 +0800 >> To: r-help@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@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. ______________________________________________ R-help@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.