【发布时间】:2018-07-16 12:28:30
【问题描述】:
我已经为这个问题苦苦挣扎了一个星期,我无法形成这个问题的逻辑:
我有这种迁移表(或数据透视表):
Region County1 County2 County 3... County 75 Multiplier
County1 0.23 0.56 0.54 ... 0.75 1200
County2 0.54 0.33 0.66 ... 0.66 1321
...
County75 0.92 0.21 0.12 ... 0.45 1600
我想将 Multiplier 的第一个行元素乘以第一个 County 列(例如:1200*(County1))
我试图自动化这样的事情:
Table1$County1 <- Table1$Multiplier[1] * Table1$County1
我一直在尝试考虑使用循环/函数、dplyr 等,但我无法提出有效的代码/我的逻辑存在严重缺陷。欢迎任何帮助/建议,我一直在搜索 Stack Overflow,但我不知道究竟要搜索什么(或者这个操作叫什么)。如果已经存在类似的解决方案,我并不是要造成任何重复,如果确实存在,我无法找到它:(。
(在 excel 中,这类似于使用 $(美元符号)与列名并相乘)
输出应该是这样的:
Region County1 County2 ... County 75 Multiplier
County1 276 739.76 ... 1200 1200
County2 648 435.93 ... 1056 1321
...
County75 1104 277.41... 720 1600
谢谢!
【问题讨论】:
-
Table1$County1 <- Table1$Multiplier[1] * Table1$County1?不清楚你期望什么输出,你能在你的问题中列出吗? -
是的,这就是我想要的。乘数是每个县的人口未来预测。所以乘数的第一行(即 1200 将乘以整个 County1 列,1321 将乘以整个 County2 列...1600 将乘以 County75 列)。 County1 - County75 中的每个值都是某个时间点(过去某处)某个人口与人口的比率。我希望这有助于解释一点,这是团队负责人的要求:(。我知道那个逻辑有点不稳定
-
@Moody_Mudskipper 我已根据您的评论更新了我的问题。很抱歉造成混乱
-
一切都好,告诉我我的答案是否如你所愿
-
不幸的是,dplyr 代码不能满足我的需要。让我看看我是否可以更好地解释这个问题,因为逻辑非常不稳定。所以列(county1,county2,..county75)需要分别乘以相应的行(乘数行的第一个元素,乘数行的第二个元素,...75th)。不幸的是,它不是一个直接的聚集、乘法和传播类型的应用程序,也不是那么简单的 mutate :(。这就是为什么我使用 [1] 表示法来表明只有第一个元素乘以整个 County1 列
标签: r function for-loop dplyr data.table