【发布时间】:2020-05-16 20:48:38
【问题描述】:
我想在 R 中为每组X 编写以下代码:
(Y-1) * 1/3 * Z/100
因此,第 2 行的输出为:(2-1) * 1/3 * 25 / 100 = 0.083
第 2 行和第 8 行所需的输出也作为示例添加
X Y Z output
1 A 1 25 0
2 A 2 25 0.08
3 A 3 0 0
4 A 4 50 0.5
5 B 1 0 0
6 B 2 0 0
7 B 3 0 0
8 B 4 100 1
谢谢!!
【问题讨论】:
-
为什么需要group by
with(df1, (Y-1) * 1/3 * Z /100)因为预期只有两行,不清楚 -
这些都是矢量化的,所以应该比较高效
-
你能测试一下你数据上的代码吗
-
你的计算是基于每个元素而不是基于一个组(除非我错了)
-
withbase R函数。在不使用$或[[或[的情况下选择列很方便,即如果我不使用with。代码是(df1$Y-1) * 1/3 * df1$Z/100,你能测试我帖子上的数据吗?
标签: r dataframe math data-manipulation