Hello, again. Inline.
Em 15-07-2012 16:17, Charles Stangor escreveu:
Rui, Since you are so generous, may I ask you one more question? What is the deal with the text after the semicolon in the statement below? Is this an ifelse or something? Why is it needed ? obrigado. df1 <- read.table(text=" cola colb colc cold cole 1 NA 5 9 NA 17 2 2 6 NA 14 NA 3 3 NA 11 15 19 4 4 8 12 NA NA ", header=TRUE) df2 <- read.table(text=" cola colb colc cold cole 1 8 10 12 14 16 ", header=TRUE) df1[["cola"]][is.na(df1[["cola"]])] <- df2[["cola"]]; df1[["cola"]] #?? what's happening after the semi?
It's printing df1[["cola"]]. Just that. The sem-colon ends an instruction and starts a new one.
If it's confusing, put what follows it in a new line. Rui Barradas
df1 On Sat, Jul 14, 2012 at 7:41 PM, Rui Barradas <ruipbarra...@sapo.pt <mailto:ruipbarra...@sapo.pt>> wrote: Hello, It's more simple than you believe it is. One thing at a time. First, in order to lighten the instructions, create index vectors. test2 <- test # save 'test' for later na.v1 <- is.na <http://is.na>(test[["v1"]]) na.v2 <- is.na <http://is.na>(test[["v2"]]) na.v3 <- is.na <http://is.na>(test[["v3"]]) Now use them. test[[ "result" ]][ !na.v1 ] <- test[[ "v1" ]][ !na.v1 ] test[[ "result" ]][ !na.v2 ] <- test[[ "v2" ]][ !na.v2 ] test[[ "result" ]][ !na.v3 ] <- test[[ "v3" ]][ !na.v3 ] Note that above, for instance, n the first line, on each side of '<-' we have two different types of indexing, in a certain sense. One, a data.frame is a list of a special type, each list member is a (random?) variable and all variables have the same number of observations. So test[[ "result" ]] refers to a vector of the data.frame. Another is the indexing of that vectors' elements. Imagine that we had assigned test.res <- test[[ "result" ]] and then accessed the elements of 'test.res' with test.res[ !na.v1 ] <- ...etc... That's what we are doing. Considering that a df is a list with a tabular form, we could also use the row/column type of indexing. Maybe this would be more intuitive. Equivalent, exactly equivalent to the code above is: test2[ !na.v1 , "result" ] <- test2[ !na.v1 , "v1" ] test2[ !na.v2 , "result" ] <- test2[ !na.v2 , "v2" ] test2[ !na.v3 , "result" ] <- test2[ !na.v3 , "v3" ] all.equal(test, test2) # TRUE Hope this helps, Rui Barradas Em 14-07-2012 21:22, Charles Stangor escreveu: OK, I need help!! I've been searching, but I don't understand the logic of some this dataframe addressing syntax. What is this type of code called? test [["v3"]] [is.na <http://is.na> <http://is.na>(test[["v2"]])] <-10 #choose column v3 where column v2 is == 4 and replace with 10 and where is it documented? The code below works for what I want to do (find the non-missing value in a row), but why? test <- read.table(text=" v1 v2 v3 result 3 NA NA NA NA 3 NA NA NA NA 3 NA " , header=TRUE) test [["result"]] [!(is.na <http://is.na> <http://is.na>(test[["v1"]]))] <- test [["v1"]] [!(is.na <http://is.na> <http://is.na>(test[["v1"]]))] test [["result"]] [!(is.na <http://is.na> <http://is.na>(test[["v2"]]))] <- test [["v2"]] [!(is.na <http://is.na> <http://is.na>(test[["v2"]]))] test [["result"]] [!(is.na <http://is.na> <http://is.na>(test[["v3"]]))] <- test [["v3"]] [!(is.na <http://is.na> <http://is.na>(test[["v3"]]))] thanks! On Fri, Jul 13, 2012 at 6:41 AM, Rui Barradas <ruipbarra...@sapo.pt <mailto:ruipbarra...@sapo.pt> <mailto:ruipbarra...@sapo.pt <mailto:ruipbarra...@sapo.pt>>> wrote: Hello, Check the structure of what you have, df and newdf. You will see that in df dateTime is of class POSIXlt and in newDf newDateTime is of class POSIXct. Solution: [...] df$dateTime <- strptime(df$dateTime,"%m/%d/%Y %H:%M") df$dateTime <- as.POSIXct(df$dateTime) [...] Hope this helps, Rui Barradas Em 13-07-2012 10:24, vioravis escreveu: I have the following dataframe with the first column being of type datetime: dateTime <- c("10/01/2005 0:00", "10/01/2005 0:20", "10/01/2005 0:40", "10/01/2005 1:00", "10/01/2005 1:20") var1 <- c(1,2,3,4,5) var2 <- c(10,20,30,40,50) df <- data.frame(dateTime = dateTime, var1 = var1, var2 = var2) df$dateTime <- strptime(df$dateTime,"%m/%d/%Y %H:%M") I want to create 10 minute interval data as follows: minTime <- min(df$dateTime) maxTime <- max(df$dateTime) newTime <- seq(minTime,maxTime,600) newDf <- data.frame(newDateTime = newTime) newDf <- merge(newDf,df,by.x = "newDateTime",by.y = "dateTime",all.x = TRUE) The objective here is to create a data frame with values from df for the datetime in df and NA for the missing ones. However, I am getting the following data frame with both Var1 and Var2 having all NAs. newDf newDateTime var1 var2 1 2005-10-01 00:00:00 NA NA 2 2005-10-01 00:10:00 NA NA 3 2005-10-01 00:20:00 NA NA 4 2005-10-01 00:30:00 NA NA 5 2005-10-01 00:40:00 NA NA 6 2005-10-01 00:50:00 NA NA 7 2005-10-01 01:00:00 NA NA 8 2005-10-01 01:10:00 NA NA 9 2005-10-01 01:20:00 NA NA Can someone help me on how to do the merge based on the two datetime columns? Thank you. Ravi -- View this message in context: http://r.789695.n4.nabble.com/____Merging-on-Datetime-Column-____tp4636417.html <http://r.789695.n4.nabble.com/__Merging-on-Datetime-Column-__tp4636417.html> <http://r.789695.n4.nabble.__com/Merging-on-Datetime-__Column-tp4636417.html <http://r.789695.n4.nabble.com/Merging-on-Datetime-Column-tp4636417.html>> Sent from the R help mailing list archive at Nabble.com. __________________________________________________ R-help@r-project.org <mailto:R-help@r-project.org> <mailto:R-help@r-project.org <mailto:R-help@r-project.org>> mailing list https://stat.ethz.ch/mailman/____listinfo/r-help <https://stat.ethz.ch/mailman/__listinfo/r-help> <https://stat.ethz.ch/mailman/__listinfo/r-help <https://stat.ethz.ch/mailman/listinfo/r-help>> PLEASE do read the posting guide http://www.R-project.org/____posting-guide.html <http://www.R-project.org/__posting-guide.html> <http://www.R-project.org/__posting-guide.html <http://www.R-project.org/posting-guide.html>> and provide commented, minimal, self-contained, reproducible code. __________________________________________________ R-help@r-project.org <mailto:R-help@r-project.org> <mailto:R-help@r-project.org <mailto:R-help@r-project.org>> mailing list https://stat.ethz.ch/mailman/____listinfo/r-help <https://stat.ethz.ch/mailman/__listinfo/r-help> <https://stat.ethz.ch/mailman/__listinfo/r-help <https://stat.ethz.ch/mailman/listinfo/r-help>> PLEASE do read the posting guide http://www.R-project.org/____posting-guide.html <http://www.R-project.org/__posting-guide.html> <http://www.R-project.org/__posting-guide.html <http://www.R-project.org/posting-guide.html>> and provide commented, minimal, self-contained, reproducible code. -- Charles Stangor Professor and Associate Chair -- Charles Stangor Professor and Associate Chair
______________________________________________ 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.