0
我附上了我所指的dataframe的屏幕截圖。 右括號後面的雙括號
運行像hist(don$TGiving[don$TGiving!=0][don$TGiving[don$TGiving!=0]<=1000])
一份聲明中生成如下的一個直方圖:
我無法理解如何解釋雙方括號[] [[]]的表達。我知道[[]]是如何工作的,但對R中的[] [[]]沒有意義。
謝謝。
我附上了我所指的dataframe的屏幕截圖。 右括號後面的雙括號
運行像hist(don$TGiving[don$TGiving!=0][don$TGiving[don$TGiving!=0]<=1000])
一份聲明中生成如下的一個直方圖:
我無法理解如何解釋雙方括號[] [[]]的表達。我知道[[]]是如何工作的,但對R中的[] [[]]沒有意義。
謝謝。
如果你有矢量v
,並且具有相同的長度作爲v
邏輯矢量lv
, 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]
相同。
我認爲你的陳述缺少']'。你的截圖沒有通過。這只是子集,你可以通過鍵入'?'[' – G5W
我發現這個解釋很有用(記住數據框只是列表)http://r4ds.had.co.nz/vectors.html#lists – Phil
看起來像這是'不要花時間'[不要花時間!= 0&不要花時間<= 1000]'? – lukeA