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.

Reply via email to