【发布时间】:2020-09-03 12:27:11
【问题描述】:
我有下面的代码行,我试图更改数据帧中不同位置(QB、RB、WR、TE)的 fpts 值,但其他两个位置(DST、 ķ)。如果我运行它,fpts 的 QB、RB、WR、TE 位置值会发生变化,但 DST 和 K fpts 会变为 0。知道为什么会这样吗?所有位置的 fpts 列中已经有值,但我只想更改我提到的这四个位置的 fpts 值。
library(tidyverse)
library(dplyr)
projections <-read_csv("https://raw.githubusercontent.com/samhoppen/2020_FF_Analysis/master/Functions/Projections.csv")
projections <- projections %>%
mutate(fpts = (if(position == "QB" || position == "RB" || position == "WR" || position == "TE"){
(pass_yds * 0.1) +
(pass_tds * 4) +
(pass_ints * -2) +
(rush_yds * 0.1) +
(rush_tds * 6) +
(fl * -2) +
(rec_rec * 1) +
(rec_yds * 0.1) +
(rec_tds * 6)}
else{fpts}))
【问题讨论】:
-
mutate(fpts = if_else(some & (long | conditional), new_value, fpts))如果条件不成立,则保留其原始值。 -
顺便说一句,
if_else(position %in% c("QB", "RB", "WR", "TE"), (lots_of_math), fpts)
标签: r if-statement dplyr