我有两个数据框
数据框 1
A B C
1 1 0
0 0 0
1 1 0
数据框 2
1 2
0 4
100 0
100 4
我需要将列相乘并组合以获得
A1 A2 B1 B2 C1 C2
0 4 0 4 0 0
0 0 0 0 0 0
100 4 100 4 0 0
我有两个数据框
数据框 1
A B C
1 1 0
0 0 0
1 1 0
数据框 2
1 2
0 4
100 0
100 4
我需要将列相乘并组合以获得
A1 A2 B1 B2 C1 C2
0 4 0 4 0 0
0 0 0 0 0 0
100 4 100 4 0 0
这是一种方法:
do.call(cbind, lapply(df1, "*", as.matrix(df2)))
1 2 1 2 1 2
[1,] 0 4 0 4 0 0
[2,] 0 0 0 0 0 0
[3,] 100 4 100 4 0 0
这将返回一个矩阵。as.data.frame
如有必要,您可以使用将其转换为数据框。
这是基于以下数据:
df1 <- data.frame(A = c(1,0,1), B = c(1,0,1), C = 0)
df2 <- data.frame("1" = c(0,100,100), "2" = c(4,0,4),
check.names = FALSE)