运行hist(don$TGiving[don$TGiving!=0][don$TGiving[don$TGiving!=0]<=1000])
之类的语句会生成如下所示的直方图:
我无法理解如何解释表达式中的双方括号[] [[]]。我确实知道[[]]是如何工作的,但在R中无法理解[] [[]]。
谢谢。
答案 0 :(得分:1)
如果您有一个向量v
,以及与lv
长度相同的逻辑向量v
,
v[lv]
返回v
的子集,仅保留lv
为TRUE
的行。我们将v_lv
返回的向量命名为v[lv]
。 v_lv
的长度等于sum(lv==TRUE)
。
现在,如果您有v[lv][v[lv]<x]
,则可以将其重写为v_lv[v_lv<x]
。
这又是v_lv
的一个子集,仅保留逻辑表达式(v_lv<x)
为TRUE
的行。
在您的示例中,您对向量don$TGiving
进行了一次子集以仅保留与0不同的行,然后再次对结果向量进行子集以仅保留<=10000
的行。您也可以同时执行两个子集,v[lv1][lv2]
与v[lv1 & lv2]
相同。