r - 重新调整 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。
解决方案
我们可以使用Map
(假设vector
s 都是numeric
)
my_list_rescaled <- Map(function(x, y) x * y/sum(x), my_list, sum_dat)
推荐阅读
- repository - Typo3 8.7.10 Flexform itemsProcFunc,自定义控制器函数,repository 为 NULL
- azure - Azure 是否支持原生 Kubernetes?
- android - 从retrofit2和rxjava中的错误获取url
- javascript - 在 Angular 6 组件中集成外部表单
- google-sheets - 如何根据谷歌电子表格中的多重搜索连接单元格
- python - 将嵌套列表组合成子列表的唯一组合
- oracle - Oracle Reports Builder 中的 Confine 和 Flex 模式
- c# - 如何为按钮动态添加不同的命令
- angular - 应用程序准备就绪后测试 UI 的最佳方法
- html - 当链接显示 flex 时,链接的子元素不会覆盖文本装饰