私は2つのデータフレームxとyを持っています。2つのデータフレームを使用して条件文を適用する
x<-data.frame("j"=c("A","B","C"),"k"=c(1,90,14))
x j k
1 A 1
2 B 90
3 C 14
y<-data.frame("A"=c(1,0,0,1,1),"B"=c(0,1,0,0,1),"C"=c(1,1,1,0,0))
A B C
1 1 0 1
2 0 1 1
3 0 0 1
4 1 0 0
5 1 1 0
私は、データセットのyに0が-1で交換するか、1列Aに1で置き換えるというように、この結果を得るために存在する場合に条件文と関数が必要です。
z<-data.frame("A"=c(1,-1,-1,1,1),"B"=c(-90,90,-90,-90,90),"C"=c(14,14,14,-14,-14))
A B C
1 1 -90 14
2 -1 90 14
3 -1 -90 14
4 1 -90 -14
5 1 90 -14
0を-1に置き換えると、基本的に乗算になります。 '( - (y == 0)+ y)*行列(x $ k、nrow(y)、ncol(y)、byrow = TRUE)' – alistaire
pfの列と行の順序がxとyの間で一致する場合、 'y [y == 0] < - -1; y * x $ k [col(y)] ' – user20650