R和with之间有什么区别?

在研究范围内,我总是使用“ with”而不是“ inner”,但是我最初认为它们是相同的。刚才我将“ with”错误地键入了“ within”,返回的结果却大不相同。我想知道为什么?

我正在使用plyr包装中的棒球数据,因此我首先通过

 require(plyr)

然后,我想选择ID为“ ansonca01 ”的所有行首先,正如我所说的,我使用“ inside ”,并按如下方式运行该函数:

within(baseball, baseball[id=="ansonca01", ])

我得到了非常奇怪的结果,基本上包括了所有内容:

       id year stint team lg   g  ab   r   h X2b X3b hr rbi  sb cs  bb  so ibb hbp sh sf gidp
4     ansonca01 1871     1  RC1     25 120  29  39  11   3  0  16   6  2   2   1  NA  NA NA NA   NA
44    forceda01 1871     1  WS3     32 162  45  45   9   4  0  29   8  0   4   0  NA  NA NA NA   NA
68    mathebo01 1871     1  FW1     19  89  15  24   3   1  0  10   2  1   2   0  NA  NA NA NA   NA
99    startjo01 1871     1  NY2     33 161  35  58   5   1  1  34   4  2   3   0  NA  NA NA NA   NA
102   suttoez01 1871     1  CL1     29 128  35  45   3   7  3  23   3  1   1   0  NA  NA NA NA   NA
106   whitede01 1871     1  CL1     29 146  40  47   6   5  1  21   2  2   4   1  NA  NA NA NA   NA
113    yorkto01 1871     1  TRO     29 145  36  37   5   7  2  23   2  2   9   1  NA  NA NA NA   NA
.........

然后,我将“一起使用而不是“之内

 with(baseball, baseball[id=="ansonca01",])

得到了我期望的结果

      id year stint team lg   g  ab   r   h X2b X3b hr rbi sb cs  bb so ibb hbp sh sf gidp
4    ansonca01 1871     1  RC1     25 120  29  39  11   3  0  16  6  2   2  1  NA  NA NA NA   NA
121  ansonca01 1872     1  PH1     46 217  60  90  10   7  0  50  6  6  16  3  NA  NA NA NA   NA
276  ansonca01 1873     1  PH1     52 254  53 101   9   2  0  36  0  2   5  1  NA  NA NA NA   NA
398  ansonca01 1874     1  PH1     55 259  51  87   8   3  0  37  6  0   4  1  NA  NA NA NA   NA
525  ansonca01 1875     1  PH1     69 326  84 106  15   3  0  58 11  6   4  2  NA  NA NA NA   NA

我通过help(with)在R环境中输入内容来检查with和inside的文档,并得到以下信息:

with是一个通用函数,用于在由数据构造的本地环境中评估expr。该环境将调用者的环境作为其父项。这对于简化对建模函数的调用很有用。(注意:如果数据已经是环境,则将其与其现有父级一起使用。)

请注意,expr中的分配发生在构造的环境中,而不是在用户的工作空间中。

除了在expr评估后检查环境并对数据进行相应的修改(如果创建的对象无法存储在数据帧中而在数据帧中失败)之后,它与之相似。可以用作转换的替代方法。

从这些差异的解释中,我不明白为什么我会通过如此简单的操作获得不同的结果。有人有想法吗?

康拉德·鲁道夫

文档非常清楚其语义和返回值(并且很好地匹配了“ with”和“ within”一词的日常含义):

值:

对于“ with”,是评估后的“ expr的值对于' within',修改后的对象。

由于您的代码baseball未修改其中的任何内容,因此baseball将返回未修改的内容。with另一方面,不返回对象,而是返回expr

这是expression修改对象的示例

> head(within(cars, speed[dist < 20] <- 1))
  speed dist
1     1    2
2     1   10
3     1    4
4     7   22
5     1   16
6     1   10

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R和with之间有什么区别?

来自分类Dev

CoffeeScript,=>和->之间有什么区别

来自分类Dev

(for ... in)和(for ... of)语句之间有什么区别?

来自分类Dev

$ @和“ $ @”之间有什么区别吗?

来自分类Dev

Python:“ is”和“ ==”之间有什么区别?

来自分类Dev

“ ./”和“ ../”之间有什么区别?

来自分类Dev

not null和<>''之间有什么区别

来自分类Dev

之间有什么区别。和.data?

来自分类Dev

〜和/在路径之间有什么区别

来自分类Dev

线程和之间有什么区别

来自分类Dev

([])+ 和 []+ 之间有什么区别?

来自分类Dev

R中的[]和[[]]有什么区别?

来自分类Dev

什么是Haskellng?“ haskellPackages”和“ haskellngPackages”之间有什么区别?

来自分类Dev

“”和“之间有什么区别?” 和 ”!” 在Swift中?

来自分类Dev

之间有什么区别?

来自分类Dev

R中的as.character()和as(,“ character”)之间有什么区别

来自分类Dev

R中的Neuronet:stepmax和rep参数之间有什么区别?

来自分类Dev

在R编程中,any和|之间有什么区别?(或)布尔运算符?

来自分类Dev

在R编程中,&vs &&,和|之间有什么区别?vs ||

来自分类Dev

Powershell中的换行符`r`n和`n之间有什么区别?

来自分类Dev

`ssh -R port:host:hostport` 和 `ssh -L port:host:hostport` 之间有什么区别?

来自分类Dev

R 中的 print() 和 print(paste()) 函数之间有什么区别?

来自分类Dev

实体和聚合之间的UML有什么区别?

来自分类Dev

dart:js和js包之间有什么区别?

来自分类Dev

分类和预测之间有什么区别?

来自分类Dev

活动和片段之间有什么区别?

来自分类Dev

“中断合并”和“ Nagle算法”之间有什么区别?

来自分类Dev

cudaDeviceScheduleBlockingSync和cudaDeviceScheduleYield之间有什么区别?

来自分类Dev

表格的大小和高度/宽度之间有什么区别?

Related 相关文章

  1. 1

    R和with之间有什么区别?

  2. 2

    CoffeeScript,=>和->之间有什么区别

  3. 3

    (for ... in)和(for ... of)语句之间有什么区别?

  4. 4

    $ @和“ $ @”之间有什么区别吗?

  5. 5

    Python:“ is”和“ ==”之间有什么区别?

  6. 6

    “ ./”和“ ../”之间有什么区别?

  7. 7

    not null和<>''之间有什么区别

  8. 8

    之间有什么区别。和.data?

  9. 9

    〜和/在路径之间有什么区别

  10. 10

    线程和之间有什么区别

  11. 11

    ([])+ 和 []+ 之间有什么区别?

  12. 12

    R中的[]和[[]]有什么区别?

  13. 13

    什么是Haskellng?“ haskellPackages”和“ haskellngPackages”之间有什么区别?

  14. 14

    “”和“之间有什么区别?” 和 ”!” 在Swift中?

  15. 15

    之间有什么区别?

  16. 16

    R中的as.character()和as(,“ character”)之间有什么区别

  17. 17

    R中的Neuronet:stepmax和rep参数之间有什么区别?

  18. 18

    在R编程中,any和|之间有什么区别?(或)布尔运算符?

  19. 19

    在R编程中,&vs &&,和|之间有什么区别?vs ||

  20. 20

    Powershell中的换行符`r`n和`n之间有什么区别?

  21. 21

    `ssh -R port:host:hostport` 和 `ssh -L port:host:hostport` 之间有什么区别?

  22. 22

    R 中的 print() 和 print(paste()) 函数之间有什么区别?

  23. 23

    实体和聚合之间的UML有什么区别?

  24. 24

    dart:js和js包之间有什么区别?

  25. 25

    分类和预测之间有什么区别?

  26. 26

    活动和片段之间有什么区别?

  27. 27

    “中断合并”和“ Nagle算法”之间有什么区别?

  28. 28

    cudaDeviceScheduleBlockingSync和cudaDeviceScheduleYield之间有什么区别?

  29. 29

    表格的大小和高度/宽度之间有什么区别?

热门标签

归档