<html><head></head><body><div style="color:#000; background-color:#fff; font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div id="yui_3_16_0_ym19_1_1484859336735_6937">Hi</div><div id="yui_3_16_0_ym19_1_1484859336735_6938"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1484859336735_6939">I had thought I was finished with this aspect of the project but yesterday this error appeared.  <br></div><div id="yui_3_16_0_ym19_1_1484859336735_7171"></div><pre tabindex="0" style="font-family: 'Lucida Console'; font-size: 12pt !important; outline: none; border: none; word-break: break-all; margin: 0px; -webkit-user-select: text; white-space: pre-wrap !important; line-height: 1.2;" id="yui_3_16_0_ym19_1_1484859336735_9723"><span style="color: rgb(197, 6, 11);" id="yui_3_16_0_ym19_1_1484859336735_7526">Error in strsplit(as.character(x), ...) : object 'variable' not found<br><br><font id="yui_3_16_0_ym19_1_1484859336735_7527" color="#000000">This occurs immediately after melting a 363 column data table.  A head of the data shows :<br></font></span><br><span style="color: blue; white-space:pre-wrap; -webkit-user-select: text;" id="yui_3_16_0_ym19_1_1484859336735_7528">> </span><span style="color: blue;" id="yui_3_16_0_ym19_1_1484859336735_7529">head(races_1$variable)
</span>[1] raceDate_1 raceDate_1 raceDate_1 raceDate_1 raceDate_1 raceDate_1
116 Levels: raceDate_1 raceDate_2 raceDate_3 raceDate_4 ... Winner_7<br><br>Now admittedly melt returns the variable column as a factor, but that works just fine with toy data. I am <br>perplexed why it bombs on real data.  The error message appears non nonsensical because it is obvious the <br>column does exist.  Also, since the error specifies STRSPLIT, not TSTRSPLIT, it just may be one of the base <br>nonsensical error messages.  Helpful to know there is an error, but....<br><br>Here is the code leading up to this error:<br>suppressMessages(library(data.table))<br id="yui_3_16_0_ym19_1_1484859336735_9474">        races.names <- colnames(races)<br id="yui_3_16_0_ym19_1_1484859336735_9475">        id_vars <- races.names[1:14]<br id="yui_3_16_0_ym19_1_1484859336735_9476">        measure_vars <- races.names[15:363]  #  yes, I have to reset the mode afterwords.<br id="yui_3_16_0_ym19_1_1484859336735_9477">        system.time(races_1 <-melt(races, id = id_vars, measure = <br id="yui_3_16_0_ym19_1_1484859336735_9478">                          measure_vars))<br id="yui_3_16_0_ym19_1_1484859336735_9479">        #  Separate variable name from prior race numbers<br id="yui_3_16_0_ym19_1_1484859336735_9480">        #  sequence (1:10)<br id="yui_3_16_0_ym19_1_1484859336735_9481">        races_1 <- races[, c("MPdata","PriorRaceSeq") := <br id="yui_3_16_0_ym19_1_1484859336735_9482">                        tstrsplit(variable, "_")]<br><br>        <br><span style="color: blue; white-space:pre-wrap; -webkit-user-select: text;" id="yui_3_16_0_ym19_1_1484859336735_9517">> </span><span style="color: blue;" id="yui_3_16_0_ym19_1_1484859336735_9518">        races_1 <- races[, c("MPdata","PriorRaceSeq") := 
</span><span style="color: blue; white-space:pre-wrap; -webkit-user-select: text;" id="yui_3_16_0_ym19_1_1484859336735_9519">+ </span><span style="color: blue;" id="yui_3_16_0_ym19_1_1484859336735_9520">                        tstrsplit(variable, "_")]
</span><span style="color: rgb(197, 6, 11);" id="yui_3_16_0_ym19_1_1484859336735_9717">Error in strsplit(as.character(x), ...) : object 'variable' not found<br><br> <font id="yui_3_16_0_ym19_1_1484859336735_9718" color="#000000">     And data str after this</font></span><span style="color: rgb(197, 6, 11);" id="yui_3_16_0_ym19_1_1484859336735_9748">
</span><span style="color: blue; white-space:pre-wrap; -webkit-user-select: text;" id="yui_3_16_0_ym19_1_1484859336735_9749">> </span><span style="color: blue;" id="yui_3_16_0_ym19_1_1484859336735_9750">str(races_1)
</span>Classes ‘data.table’ and 'data.frame': 48511 obs. of  16 variables:
 $ TrackToday        : chr  "AQU" "AQU" "AQU" "AQU" ...
 $ DateToday         : int  20120101 20120101 20120101 20120101 20120101 20120101 20120101 20120101 20120101 20120101 ...
 $ RaceNumberToday   : int  1 1 1 1 1 1 1 1 2 2 ...
 $ PostPositionToday : int  1 2 3 4 5 6 7 8 1 2 ...
 $ DistanceToday     : int  1320 1320 1320 1320 1320 1320 1320 1320 1320 1320 ...
 $ SurfaceToday      : chr  "d" "d" "d" "d" ...
 $ RaceTypeToday     : chr  "AO" "AO" "AO" "AO" ...
 $ RaceClassToday    : chr  "OClm 50000nw1" "OClm 50000nw1" "OClm 50000nw1" "OClm 50000nw1" ...
 $ PurseToday        : int  51000 51000 51000 51000 51000 51000 51000 51000 60000 60000 ...
 $ ClaimingPriceToday: int  50000 50000 50000 50000 50000 50000 50000 50000 NA NA ...
 $ MorningLineOdds   : num  2 20 4 30 2.5 8 5 15 20 2 ...
 $ HorseName         : chr  "FUNKY MUNKY MAMA" "STARSHIP WARPSPEED" "SIGGI THE ALIEN" "SHANDREA" ...
 $ HDWrunStyle       : chr  "E  " "P  " "EP " "E  " ...
 $ DaysSinceLastRace : int  78 45 31 17 39 30 17 50 NA NA ...
 $ variable          : Factor w/ 349 levels "raceDate_1","raceDate_2",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ value             : chr  "20111015" "20111117" "20111201" "20111215" ...
 - attr(*, ".internal.selfref")=<externalptr> <br><br>Toy data that works thanks to prior help request:<br> library(data.table)<br id="yui_3_16_0_ym19_1_1484859336735_11511">library(tidyr)<br id="yui_3_16_0_ym19_1_1484859336735_11512">#  data table for melt and columns split<br id="yui_3_16_0_ym19_1_1484859336735_11513">dt1 <- data.table(a_1 = 1:10, b_2 = 20:29,folks = c("art","brian","ed",<br id="yui_3_16_0_ym19_1_1484859336735_11514">         "rich","dennis","frank", "derrick","paul","fred","numnuts"),<br id="yui_3_16_0_ym19_1_1484859336735_11515">          a_2 = 2:11, b_1 = 21:30)<br id="yui_3_16_0_ym19_1_1484859336735_11516">melted <- melt(dt1, id = "folks")[,c("varType","varIndex") :=<br id="yui_3_16_0_ym19_1_1484859336735_11517">                 tstrsplit(variable,"_")][,variable:=NULL]<br><br></pre><pre tabindex="0" style="font-family: 'Lucida Console'; font-size: 12pt !important; outline: none; border: none; word-break: break-all; margin: 0px; -webkit-user-select: text; white-space: pre-wrap !important; line-height: 17.27272605895996px; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: -webkit-left; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" id="yui_3_16_0_ym19_1_1484859336735_7182"><span style="color: rgb(197, 6, 11);" id="yui_3_16_0_ym19_1_1484859336735_9521"><font id="yui_3_16_0_ym19_1_1484859336735_11680" color="#000000"> What is also puzzling is that the next statement sets column "variable" to NULL and that works.  Thus logic <br>says it is not the column that is missing but "something" else entirely.<br><br>Any ideas greatly appreciated.<br><br>Carl Sutton<br></font><font color="#000000"> </font><br><br></span></pre></div></body></html>