如何在 R 資料框中查詢每一行的乘積?
為了找到 R 資料框中每一行的乘積,我們可以使用 matrixStats 包中的 rowProds 函式,但是我們需要將資料框讀取為矩陣。
例如,如果我們有一個名為 df 的資料框,那麼我們可以使用下面給出的命令來查詢 df 中每一行的乘積:
rowProds(as.matrix(df))
示例 1
以下程式碼片段建立一個示例資料框:
x1<-rpois(20,5) x2<-rpois(20,2) x3<-rpois(20,1) df1<-data.frame(x1,x2,x3) df1
建立了以下資料框:
x1 x2 x3 1 3 1 4 2 7 2 0 3 2 4 1 4 9 2 0 5 4 2 2 6 7 3 1 7 5 2 2 8 1 2 0 9 4 1 2 10 4 1 0 11 8 2 0 12 6 2 2 13 6 0 2 14 6 3 1 15 4 2 0 16 10 4 1 17 8 0 0 18 5 4 0 19 6 3 0 20 2 2 0
要載入 matrixStats 包並查詢上面建立的資料框 df1 中資料的每一行的乘積,請將以下程式碼新增到上面的程式碼片段中:
x1<-rpois(20,5) x2<-rpois(20,2) x3<-rpois(20,1) df1<-data.frame(x1,x2,x3) library(matrixStats) df1$Row_Product_df1<-rowProds(as.matrix(df1)) df1
輸出
如果您將以上所有程式碼片段作為一個程式執行,它將生成以下輸出:
x1 x2 x3 Row_Product_df1 1 3 1 4 12 2 7 2 0 0 3 2 4 1 8 4 9 2 0 0 5 4 2 2 16 6 7 3 1 21 7 5 2 2 20 8 1 2 0 0 9 4 1 2 8 10 4 1 0 0 11 8 2 0 0 12 6 2 2 24 13 6 0 2 0 14 6 3 1 18 15 4 2 0 0 16 10 4 1 40 17 8 0 0 0 18 5 4 0 0 19 6 3 0 0 20 2 2 0 0
示例 2
以下程式碼片段建立一個示例資料框:
y1<-round(rnorm(20),0) y2<-round(rnorm(20),0) y3<-round(rnorm(20),0) y4<-round(rnorm(20),0) df2<-data.frame(y1,y2,y3,y4) df2
建立了以下資料框:
y1 y2 y3 y4 1 0 -1 0 -2 2 0 -1 -1 0 3 1 0 1 0 4 0 0 0 0 5 1 -1 1 2 6 0 0 -1 -1 7 -1 0 -1 0 8 1 0 -1 0 9 -2 0 -2 1 10 0 0 0 1 11 -2 1 -2 0 12 0 1 0 -1 13 3 0 0 1 14 1 -1 1 -2 15 -1 1 1 -1 16 1 1 -1 0 17 0 0 -1 0 18 2 0 2 -1 19 3 2 0 -1 20 1 0 -1 -1
要查詢上面建立的資料框 df2 中資料的每一行的乘積,請將以下程式碼新增到上面的程式碼片段中:
y1<-round(rnorm(20),0) y2<-round(rnorm(20),0) y3<-round(rnorm(20),0) y4<-round(rnorm(20),0) df2<-data.frame(y1,y2,y3,y4) df2$Row_Product_df2<-rowProds(as.matrix(df2)) df2
輸出
如果您將以上所有程式碼片段作為一個程式執行,它將生成以下輸出:
y1 y2 y3 y4 Row_Product_df2 1 0 -1 0 -2 0 2 0 -1 -1 0 0 3 1 0 1 0 0 4 0 0 0 0 0 5 1 -1 1 2 -2 6 0 0 -1 -1 0 7 -1 0 -1 0 0 8 1 0 -1 0 0 9 -2 0 -2 1 0 10 0 0 0 1 0 11 -2 1 -2 0 0 12 0 1 0 -1 0 13 3 0 0 1 0 14 1 -1 1 -2 2 15 -1 1 1 -1 1 16 1 1 -1 0 0 17 0 0 -1 0 0 18 2 0 2 -1 0 19 3 2 0 -1 0 20 1 0 -1 -1 0
廣告