首页 > 解决方案 > 重新调整 R 中数字总和的值

问题描述

如果我有这些数据框

df1<- as.numeric(c("20", "25", "15", "50"))

df2<- as.numeric (c("15", "20", "10", "5"))

df3<- as.numeric(c("10", "7", "15", "13"))

my_list <- list(df1, df2, df3)

sum_dat <- as.numeric(c("180", "90", "5"))

在这里,我希望列表 my_list 中的数据帧,即重新调整 df1 中的数字,使 df1 (20+25+15+50) 的总和接近或等于 180,df2 总和等于 90,并且 df 3总和等于5。

标签: rlistdata-manipulationrescale

解决方案


我们可以使用Map(假设vectors 都是numeric

my_list_rescaled <- Map(function(x, y)  x * y/sum(x), my_list, sum_dat)

推荐阅读