List, I am attempting to take a row of data from one matrix to another if it satisfies a certain condition. When R puts the data in the new matrix it is changing the characters to integers and giving them values which aren't very helpful to my analysis. I would use as.character, but I need to keep the double values as is. Is there a way to copy the entry exactly as is to the new matrix, without having to use a separate statement for each entry. I've included some code below. In my example all but row 5 are factors and should be kept as characters, and column 7 has 2 levels, 1 or 2. Column 5, the response is a double. Thanks for the help.
l = nrow(data) n = 1 k = 1 data1trip = as.data.frame(rbind(1:7)) data2trip = as.data.frame(rbind(1:7)) colnames(data1trip) =...#my column names for data1trip colnames(data2trip) =...# "" "" data2trip for(i in 1:l){ if (data[i,7]=="1"){ data1trip[k,] = data[i,]; k=k+1 } else { data2trip[n,] = data[i,]; n = n+1} } is the only other way to do what i want.... for(i in 1:l){ if (data[i,7]=="1"){ data1trip[k,1] = as.char(data[i,1] data1trip[k,2] = as.char(data[i,2] data1trip[k,3] = data[i,] ....... else { and the same for those which have a "2" value in data[i,7]? } This second way seems a bit sloppy and i wanted to check if there existed a more "professional" way to do it. Thanks again, Dave Mitchell ______________________________________________ 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.