大佬教程收集整理的这篇文章主要介绍了跨多个表的多列操作,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个表(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,请注明来意。