La *_*ale 4 conditional replace r
我有一个像这样的数据帧:
sport contract start contract end visits spends purchases
basket 2013-10-01 2014-10-01 12 14 23
basket 2014-02-12 2015-03-03 23 11 7
football 2015-02-12 2016-03-03 23 11 7
basket 2016-07-17 2013-09-09 12 7 13
Run Code Online (Sandbox Code Playgroud)
我想根据变量"sport"和"contract start"有条件地用NAs替换列[4:6].例如:
i1 <- which(df$sport =="basket" & df$contract_start>="2014-01-01")
Run Code Online (Sandbox Code Playgroud)
将索引满足条件的所有行.是否有一段简单的代码可以添加到上面,在给定上述条件的情况下,将用NAs代替df [4:6]?我想最终得到类似的东西:
sport contract start contract end visits spends purchases
basket 2013-10-01 2014-10-01 12 14 23
basket 2014-02-12 2015-03-03 NA NA NA
football 2015-02-12 2016-03-03 23 11 7
basket 2016-07-17 2013-09-09 NA NA NA
Run Code Online (Sandbox Code Playgroud)
谢谢!一个.
您只需指定要用NA替换的行和列,然后分配NA给它:
df[df$sport =="basket" & df$contract_start>="2014-01-01", 4:6] <- NA
df
# sport contract_start contract_end visits spends purchases
# 1 basket 2013-10-01 2014-10-01 12 14 23
# 2 basket 2014-02-12 2015-03-03 NA NA NA
# 3 football 2015-02-12 2016-03-03 23 11 7
# 4 basket 2016-07-17 2013-09-09 NA NA NA
Run Code Online (Sandbox Code Playgroud)