基於 R 中另一個數值列查詢列值的總和。
為了在 R 中基於另一個數值列查詢列值的總和,我們可以使用 with 函式並透過使用單個方括號對列進行子集化來定義總和。
例如,如果我們有一個名為 df 的資料框,其中包含兩列,例如 X 和 Y,那麼我們可以使用以下命令查詢當 Y 大於 10 時 X 中值的總和:
(df,sum(X[Y10]))
示例 1
以下程式碼片段建立了一個示例資料框:
x1<-rpois(20,2) y1<-rpois(20,2) df1<-data.frame(x1,y1) df1
建立了以下資料框
x1 y1 1 1 1 2 0 1 3 0 1 4 2 3 5 3 1 6 0 2 7 7 2 8 3 1 9 2 3 10 2 1 11 3 5 12 3 2 13 4 2 14 0 4 15 1 5 16 2 1 17 3 3 18 2 0 19 3 1 20 1 2
為了在上面建立的資料框中查詢當 x1 在 1 到 4 之間時的 y1 值的總和,請將以下程式碼新增到上述程式碼片段中:
x1<-rpois(20,2) y1<-rpois(20,2) df1<-data.frame(x1,y1) with(df1,sum(y1[x1>1 & x1<4]))
輸出
如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出:
[1] 23
示例 2
以下程式碼片段建立了一個示例資料框:
x2<-rnorm(20) y2<-rnorm(20) df2<-data.frame(x2,y2) df2
建立了以下資料框
x2 y2 1 1.14755939 0.2739985 2 0.33167239 -0.2753514 3 -0.01889732 2.0004839 4 -0.21294107 -1.2277250 5 -1.01230915 -0.4567277 6 0.30736328 0.8563572 7 0.59352845 0.7922568 8 -1.52657337 0.6147363 9 1.43228181 -0.7891716 10 0.15651466 -1.0415412 11 0.01792464 -0.3184454 12 -0.39428864 1.8005928 13 -0.48033841 -1.2787737 14 -0.51845529 0.2815327 15 0.33342239 -0.1313864 16 0.80461529 -0.2456082 17 0.30222411 -1.0134336 18 -0.83910609 -0.8805410 19 -0.06040907 1.4582650 20 0.12855851 -0.3424985
為了在上面建立的資料框中查詢當 x2 在 1 到 1.2 之間時的 y2 值的總和,請將以下程式碼新增到上述程式碼片段中:
x2<-rnorm(20) y2<-rnorm(20) df2<-data.frame(x2,y2) with(df2,sum(y2[x>21 & x2<1.2]))
輸出
如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出:
[1] 0.2739985
示例 3
以下程式碼片段建立了一個示例資料框:
x3<-sample(0:9,20,replace=TRUE) y3<-sample(0:9,20,replace=TRUE) df3<-data.frame(x3,y3) df3
建立了以下資料框
x3 y3 1 9 0 2 2 3 3 2 1 4 1 2 5 2 0 6 1 6 7 3 1 8 1 0 9 9 5 10 6 9 11 1 5 12 6 6 13 7 3 14 9 7 15 9 8 16 5 8 17 0 1 18 6 9 19 3 4 20 1 3
為了在上面建立的資料框中查詢當 x3 在 8 到 10 之間時的 y3 值的總和,請將以下程式碼新增到上述程式碼片段中:
x3<-sample(0:9,20,replace=TRUE) y3<-sample(0:9,20,replace=TRUE) df3<-data.frame(x3,y3) with(df3,sum(y3[x>38 & x3<10]))
輸出
如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出:
[1] 20
廣告