[R] Problem getting characters into a dataframe

Chris Strachan chris.strac at googlemail.com
Tue May 18 22:47:48 CEST 2010


Hi,

I am having a problem getting character (string) variables into a 
dataframe.  I seem to have no problem with numeric fields, but character 
fields are appearing as a "1".

In my problem I need to retrieve some information from an SQL database 
using RODBC one line at a time and then update the respective row.

I have tried converting the object returned from the query into various 
classes but to no avail.

Here is a selection of the code:

I am updating table2 in this case which only has two rows.
The query is executed for the row and stored in y.  The contents of y 
are then meant to update the various columns.


 > for (x in c(1:2)) { y <- 
sqlQuery(EFXchannel,paste(getData,total2$TRAN_NUMBER[x]))

+ y <- as.list(y)

+    total2$TRN_DT[x] <- as.numeric(y[1]) +ISOdatetime(1970,1,1,1,0,0)

+    total2$CARDNUM[x] <- as.character(y[2])

+    total2$TRN_AMT[x] <- as.double(y[3])

+    total2$MER_CNTY_CD[x] <- as.numeric(y[4])

+    total2$SIC_CD[x] <- as.numeric(y[5])

+    total2$MER_NM[x] <- as.character(y[6])

+    print(y[6])

+    total2$TRN_POS_ENT_CD[x] <- as.character(y[7])

+    total2$RULE_HIT[x] <- as.numeric(y[8])}

                                     MER_NM

1 XXXXX RENT A CAR

                                     MER_NM

1 HOTEL XXXXX

 > total2

   TRAN_NUMBER     TRN_DT    TRN_AMT MER_CNTY_CD SIC_CD MER_NM 
TRN_POS_ENT_CD RULE_HIT

1   720001861 1272544032     600         724   7512      1              
1        1

2   720001377 1272493155      86         250   7011      1              
1        1

 >

As you can see MER_NM and TRN_POS_ENT_CD do not update.

For information this is the type of information returned by the query

 > z <- sqlQuery(EFXchannel,paste(getData,720001377))

 > z

                TRN_DT TRN_AMT MER_CNTY_CD 
SIC_CD                                   MER_NM TRN_POS_ENT_CD RULE

1 2010-04-28 23:19:15      86         250   7011 HOTEL 
XXXXX                                          K    1

 > class(z)

[1] "data.frame"


Any assistance or alternate methodologies would be much appreciated.

Thanks,
Chris



More information about the R-help mailing list