<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 02/10/13 12:50, Ricky Saporta wrote:<br>
    </div>
    <blockquote
      cite="mid:085806D7-2265-4EDE-B47E-5822BD73E3BB@scarletmail.rutgers.edu"
      type="cite">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div><br>
      </div>
      <div>
        <div style="-webkit-tap-highlight-color: rgba(26, 26, 26,
          0.296875); -webkit-composition-fill-color: rgba(175, 192, 227,
          0.230469); -webkit-composition-frame-color: rgba(77, 128, 180,
          0.230469); ">This might be a topic to raise in a separate
          email: </div>
        <div style="-webkit-tap-highlight-color: rgba(26, 26, 26,
          0.296875); -webkit-composition-fill-color: rgba(175, 192, 227,
          0.230469); -webkit-composition-frame-color: rgba(77, 128, 180,
          0.230469); ">What do you think of adapting a naming convention
          where the name of the function indicates when a function will
          modify an object by reference?  In my personal work, I have
          been trying to end such functions with an underscore.  Putting
          aside for the moment all obvious and not so obvious issues
          with changing the names of existing functions & backwards
          compatibility, is the idea itself worth considering? <br>
        </div>
      </div>
    </blockquote>
    <br>
    Maybe.  But the convention was already that any function started
    "set" indicates it will change the object by reference. The
    documentation uses "set*" in several places with this in mind.<br>
    <br>
    > objects("package:data.table", pattern="^set")<br>
    [1] "set"         "setattr"     "setcolorder" "setkey"     
    "setkeyv"    <br>
    [6] "setnames"   <br>
    > <br>
    <br>
    If the functions insert() and delete() are added, they'll add and
    remove rows by reference.  Those verbs don't start with set, but
    it's clear (in my mind) that they'd change the data.table by
    reference; e.g. insert(DT, row number | "end", some data).<br>
    <br>
    Looking at base etc for functions starting "set*" there's some
    side-effect meaning intended there too (setwd, setTimeLimit,
    set.seed).  setdiff and setequal are about sets in the collection
    sense.  So it's just setNames as a one off really.   And we don't
    use camelCase in data.table, so that's how to remember that.<br>
    <br>
    > objects("package:base", pattern="^set")<br>
    [1] "setdiff"             "setequal"            "setHook"           
    <br>
    [4] "setNamespaceInfo"    "set.seed"           
    "setSessionTimeLimit"<br>
    [7] "setTimeLimit"        "setwd"              <br>
    > objects("package:stats", pattern="^set")<br>
    [1] "setNames"<br>
    > objects("package:utils", pattern="^set")<br>
    [1] "setBreakpoint"     "setRepositories"   "setTxtProgressBar"<br>
    <br>
    Since other set* functions work on data.frame  (set() for example!),
    setnames should too.  I was forgetting that. Let's change it then.<br>
    <br>
    Matt<br>
    <br>
    <blockquote
      cite="mid:085806D7-2265-4EDE-B47E-5822BD73E3BB@scarletmail.rutgers.edu"
      type="cite">
      <div style="-webkit-tap-highlight-color: rgba(26, 26, 26,
        0.296875); -webkit-composition-fill-color: rgba(175, 192, 227,
        0.230469); -webkit-composition-frame-color: rgba(77, 128, 180,
        0.230469); "><br>
      </div>
      <div style="-webkit-tap-highlight-color: rgba(26, 26, 26,
        0.296875); -webkit-composition-fill-color: rgba(175, 192, 227,
        0.230469); -webkit-composition-frame-color: rgba(77, 128, 180,
        0.230469); ">Rick </div>
      <div><br>
      </div>
      <br>
      <blockquote type="cite">
        <div>
          <div class="moz-cite-prefix"> <br>
            Matt<br>
            <br>
            <br>
            On 01/10/13 20:51, Ricardo Saporta wrote:<br>
          </div>
          <blockquote
cite="mid:CAE7Aa4QB-eZiM1YTkYE2TN8feZ6dW92v8cP66=k_wuFPVD2fyw@mail.gmail.com"
            type="cite">
            <div dir="ltr">
              <div>Hi All, </div>
              <div><br>
              </div>
              <div>I'm wondering if there are any potential problems or
                unforseen pitfalls with having</div>
              <div><br>
              </div>
              <div>  setnames(x, nms)</div>
              <div><br>
              </div>
              <div>call</div>
              <div>    setattr(x, "names", nms)</div>
              <div><br>
              </div>
              <div>when x is not a data.table. </div>
              <div><br>
              </div>
              <div>Thoughts? </div>
              <div><br>
              </div>
              Rick<br clear="all">
              <div>
                <div
                  style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">
                  <div style="font-size:13px"><br>
                  </div>
                  <div style="font-size:13px">Ricardo Saporta</div>
                  <div style="font-size:13px">Graduate Student, Data
                    Analytics</div>
                  <div style="font-size:13px"><span
                      style="font-size:13px">Rutgers University, New
                      Jersey</span></div>
                  <div style="font-size:13px"><span
                      style="font-size:13px">e: </span><a
                      moz-do-not-send="true"
                      href="mailto:saporta@rutgers.edu"
                      style="color:rgb(17,85,204);font-size:13px"
                      target="_blank">saporta@rutgers.edu</a></div>
                  <div><br>
                  </div>
                </div>
              </div>
            </div>
            <br>
            <fieldset class="mimeAttachmentHeader"></fieldset>
            <br>
            <pre wrap="">_______________________________________________
datatable-help mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:datatable-help@lists.r-forge.r-project.org">datatable-help@lists.r-forge.r-project.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help</a></pre>
          </blockquote>
          <br>
        </div>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>