<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">Sure, you can update it. No, there's no advantage. I just dint think of CJ at the time (probably because I tried it with J and it worked, because it's just 1 value for the 2nd key col).</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div> <div id="bloop_sign_1402848219520715008" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">Arun</div></div> <div style="color:black"><br>From: <span style="color:black">G See</span> <a href="mailto:gsee000@gmail.com">gsee000@gmail.com</a><br>Reply: <span style="color:black">G See</span> <a href="mailto:gsee000@gmail.com">gsee000@gmail.com</a><br>Date: <span style="color:black">June 15, 2014 at 6:03:13 PM</span><br>To: <span style="color:black">Arunkumar Srinivasan</span> <a href="mailto:aragorn168b@gmail.com">aragorn168b@gmail.com</a><br>Cc: <span style="color:black">datatable-help@lists.r-forge.r-project.org</span> <a href="mailto:datatable-help@lists.r-forge.r-project.org">datatable-help@lists.r-forge.r-project.org</a><br>Subject: <span style="color:black"> Re: [datatable-help] subsetting by second key <br></span></div><br> <blockquote type="cite" class="clean_bq"><span><div><div></div><div>Thank you Arun. Should that answer be updated to use CJ(.), then? Is
<br>there an advantage to using J(.) over CJ(.) if you know that you're
<br>only looking for one value in the second column?
<br>
<br>On Sun, Jun 15, 2014 at 10:56 AM, Arunkumar Srinivasan
<br><aragorn168b@gmail.com> wrote:
<br>> unique(Species) is of length 3, where as the 2nd entry c(1.5, 2) is of
<br>> length 2.
<br>>
<br>> J in J(.) is replaced with list(.) internally (using lazy evaluation),
<br>> following which it’s converted to a data.table using as.data.table(list(.)).
<br>>
<br>> And here your list is:
<br>>
<br>> list(c("setosa", "versicolor", "virginica") , c(1.5, 2.0)) which results in
<br>> the warning because it has to recycle to convert it to a data.table.
<br>>
<br>> In the example you’ve linked, J(.) and CJ(.) will return the same result
<br>> (because there’s just one value in 2nd column). So, the results don’t
<br>> change. But the general expression is to use CJ(.) along with nomatch=0L, as
<br>> you’ve done.
<br>>
<br>> Those two expressions are equivalent, yes.
<br>>
<br>>
<br>> Arun
<br>>
<br>> From: G See gsee000@gmail.com
<br>> Reply: G See gsee000@gmail.com
<br>> Date: June 15, 2014 at 5:45:11 PM
<br>> To: datatable-help@lists.r-forge.r-project.org
<br>> datatable-help@lists.r-forge.r-project.org
<br>> Subject: [datatable-help] subsetting by second key
<br>>
<br>> Hi,
<br>>
<br>> I want to subset a data.table using only its second key, which is
<br>> demonstrated here
<br>> http://stackoverflow.com/questions/15597685/subsetting-data-table-by-2nd-column-only-of-a-2-column-key-using-binary-search/15597713#15597713
<br>>
<br>> However, I need to subset with more than one value in the secondary key
<br>>
<br>> Is this warning expected? What exactly is it telling me?
<br>>
<br>> library(data.table)
<br>> DT <- data.table(iris, key="Species,Petal.Width")
<br>> DT[J(unique(Species), c(1.5, 2.0)), nomatch=0L]
<br>> # Sepal.Length Sepal.Width Petal.Length Petal.Width Species
<br>> #1: 6.0 2.2 5.0 1.5 virginica
<br>> #2: 6.3 2.8 5.1 1.5 virginica
<br>> #Warning message:
<br>> #In as.data.table.list(i) :
<br>> # Item 2 is of size 2 but maximum size is 3 (recycled leaving a
<br>> remainder of 1 items)
<br>>
<br>>
<br>> It looks like I can get what I want with either of these; can you
<br>> confirm that both of these will always return the same result?
<br>>
<br>> DT[Petal.Width %in% c(1.5, 2.0)] # vector scan
<br>> DT[CJ(unique(Species), c(1.5, 2.0)), nomatch=0L]
<br>>
<br>>
<br>> Thanks,
<br>> Garrett
<br>> _______________________________________________
<br>> datatable-help mailing list
<br>> datatable-help@lists.r-forge.r-project.org
<br>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
<br></div></div></span></blockquote></body></html>