我有两个数据框:
df1 <- data.frame(Values=c(0.01,0.05), row.names=c("X", "Y"))
df1
Values
X 0.01
Y 0.05
df2 <-data.frame(c(0,1,1), c(1,0,0), c(1,1,1))
colnames(df2) <- c("X","Y","Z")
df2
X Y Z
1 0 1 1
2 1 0 1
3 1 0 1
我希望表演一个rowwisedf2 上的运算,我将每个相乘column在 df2 中及其相应的df1 中的行,然后执行求和.
例如,对于 df2 的第 1 行,我希望计算:
df2 %>% rowwise %>% mutate(newVAL=(df1["X",]*df2[1,"X"])+(df1["Y",]*df2[1,"Y"]))
同时排除不匹配的列(df1 中的行)或具有 NA 的列。
我在 df1 中有几千行,在 df2 中有几千行和列。
任何帮助深表感谢!!
附言。我已经使用哈希在 Perl 中实现了这一点,并使用 system() 调用在 Rmarkdown 文档中执行这些计算。为了保持它完全可重现,我尝试在 R 中重做它。如有必要,我很乐意分享 Perl 代码。
Thanks.