【问题标题】:Multiplying and combine two data frames in R在R中相乘和组合两个数据帧
【发布时间】:2014-03-08 12:47:12
【问题描述】:

我有两个数据框

数据框 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, "*", df2)) 也可以工作,并且还将更新列名作为两个数据框的组合

标签: r dataframe multiplication cbind


【解决方案1】:

这是一种方法:

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)

【讨论】:

    猜你喜欢
    • 2013-02-17
    • 1970-01-01
    • 2017-01-03
    • 2013-12-19
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多