我有 2 個矩陣/資料框,A 和 B,每個尺寸為 50x30。
如何分別用矩陣 B 的每列的 11 個元素替換矩陣 A 每列的前 11 個元素,而不必回圈每列?
示例(對于矩陣 3x3 和 n_replace = 2):
matrix A matrix B resultant matrix
v1 v2 v3 v1 v2 v3 v1 v2 v3
1 2 1 12 99 .31 -> 12 99 .31 # replaced from matrix B
5 4 1 33 .2 12 33 .2 12 # replaced from matrix B
9 2 3 10 .3 14 9 2 3 # remained from matrix A
我想我可以做類似的事情
for(i in 1:3) {
replace(A[,i], c(1:n_replace), B[1:n_replace,i])
}
但是在 R 中有沒有更直接/更智能的方法來做到這一點?
uj5u.com熱心網友回復:
從您的示例中,您可以執行以下操作:
A[1:2,] <- B[1:2,]
A
# [,1] [,2] [,3]
#[1,] 12 99.0 0.31
#[2,] 33 0.2 12.00
#[3,] 9 2.0 3.00
如果要替換每列的前 11 個元素的值,邏輯是相同的:
A[1:11,] <- B[1:11,]
資料
A = matrix(c(1,5,9,2,4,2,1,1,3),nrow=3)
B = matrix(c(12,33,10,99,.2,.3,.31,12,14),nrow=3)
uj5u.com熱心網友回復:
試試這個:
df_result <- df[1:11,]<- df1[1:11,]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/399307.html
上一篇:使用Pandas清理資料
