在 R 中,我发现自己经常做这样的事情:
adataframe[adataframe$col==something]<-adataframe[adataframe$col==something)]+1
这种方式有点漫长而且乏味。有什么办法适合我吗
引用我试图更改的对象,例如
adataframe[adataframe$col==something]<-$self+1
?
试用套餐数据表 http://datatable.r-forge.r-project.org/和它的:=
操作员。它非常快而且非常短。
DT[col1==something, col2:=col3+1]
第一部分col1==something
是子集。您可以在此处放置任何内容并使用列名称,就好像它们是变量一样;即不需要使用$
。然后是第二部分col2:=col3+1
将 RHS 分配给该子集中的 LHS,其中可以将列名称分配给变量,就像它们是变量一样。:=
是通过引用赋值。不会复制任何对象,因此比<-
, =
, within
and transform
.
此外,很快将在 v1.8.1 中实现,最终目标是j
的语法允许:=
in j
就像这样将它与by
,参见问题:我什么时候应该使用:=data.table 中的运算符 https://stackoverflow.com/questions/7029944/when-should-i-use-the-operator-in-data-table.
更新:确实已发布(:=
按组)于 2012 年 7 月。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)