程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了跨多个表的多列操作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决跨多个表的多列操作?

开发过程中遇到跨多个表的多列操作的问题如何解决?下面主要结合日常开发的经验,给出你关于跨多个表的多列操作的解决方法建议,希望对你解决跨多个表的多列操作有所启发或帮助;

我有两个表(dt1、dt2)。 dt2 包含与 dt1 相同的变量名称。 对于 dt1 中的每个变量,我想将它与 dt2 中的值相乘。 在下面的示例中,dt1 中的 x 将乘以 4,y 将乘以 7。 怎么做的快速方法? 谢谢

  set.seed(123)
  dt1 <- data.frame(x = sample(1:10,10,TRUE),y = sample(1:10,TRUE) )
  dt1
  dt2 = data.frame (names = c("x","y"),values = c(4,7))
  dt2

解决方法

你可以试试sweep

> sweep(dt1,2,dt2$values[match(dt2$names,names(dt1))],"*")
    x  y
1  12 35
2  12 21
3  40 63
4   8 63
5  24 63
6  20 21
7  16 56
8  24 70
9  36 49
10 40 70

> dt1[] <- t(t(dt1) * dt2$values[match(dt2$names,names(dt1))])

> dt1
    x  y
1  12 35
2  12 21
3  40 63
4   8 63
5  24 63
6  20 21
7  16 56
8  24 70
9  36 49
10 40 70
,

purrr 样式

map2_df(dt1,dt2 %>% pivot_wider(names_from = names,values_from = values),~.y * .x)

# A tibble: 10 x 2
       x     y
   <dbl> <dbl>
 1    12    35
 2    12    21
 3    40    63
 4     8    63
 5    24    63
 6    20    21
 7    16    56
 8    24    70
 9    36    49
10    40    70

大佬总结

以上是大佬教程为你收集整理的跨多个表的多列操作全部内容,希望文章能够帮你解决跨多个表的多列操作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: