使用变量/列i R的唯一值循环所有观测值
我的数据集如下所示: 链条 产品 周 销售额 链1 产品1 1. 0 链1 产品1 2. 0 -------- -------- ----- ----- 链1 产品1 51 10 链1 产品1 52 14 链2 产品1 1. 10 链2 产品1 2. 11 -------- -------- ----- ----- 链2 产品1 51 12 链2 产品1 52 15 链1 产品2 1. 3. 链1 产品2 2. 4. -------- -------- ----- ----- 链1 产品2 51 8. 链1 产品2 52 10 链2 产品2 1. 11 链2 产品2 2. 12 -------- -------- ----- ----- 链2 产品2 51 15 链2 产品2 52 7.使用变量/列i R的唯一值循环所有观测值,r,R,我的数据集如下所示: 链条 产品 周 销售额 链1 产品1 1. 0 链1 产品1 2. 0 -------- -------- ----- ----- 链1 产品1 51 10 链1 产品1 52 14 链2 产品1 1. 10 链2 产品1 2. 11 -------- -------- ----- ----- 链2 产品1 51 12 链2 产品1 52 15 链1 产品2 1. 3. 链1 产品2 2. 4. -------- -------- ----- ----- 链1 产品2 51
对于每个
链中的每个产品
,我们可以找到第一次销售
值大于0的行,并将该行值更改为1。如果您的数据被称为df
library(dplyr)
df %>%
group_by(Chain, Product) %>%
mutate(I = as.integer(row_number() == match(TRUE, Sale > 0))) -> result
result
对于每个链中的每个产品
,我们可以找到第一次销售
值大于0的行,并将该行值更改为1。如果您的数据被称为df
library(dplyr)
df %>%
group_by(Chain, Product) %>%
mutate(I = as.integer(row_number() == match(TRUE, Sale > 0))) -> result
result
我们可以使用base R
df$I <- with(df, ave(Sale > 0, Chain, Product, FUN = which.max))
df$I 0,链,产品,乐趣=哪个.max))
我们可以使用基本R
df$I <- with(df, ave(Sale > 0, Chain, Product, FUN = which.max))
df$I 0,链,产品,乐趣=哪个.max))
谢谢,这很有效!我刚刚添加了一个代码,以确保如果销售一开始就已经大于0,那么“I”在第一周不会为1。谢谢,这很有效!我只需要添加一个代码,以确保如果销售一开始就已经大于0,那么第一周“I”将不会为1。