我正在尝试一个基于 dplyr 的工作流(而不是使用大部分的 data.table,我已经习惯了) ,我遇到了一个问题,我无法找到一个等效的 dplyr 解决方案。我通常会遇到这样的情况: 我需要根据单个条件有条件地更新/替换多个列。下面是我的 data.table 解决方案的一些示例代码:
library(data.table)
# Create some sample data
set.seed(1)
dt <- data.table(site = sample(1:6, 50, replace=T),
space = sample(1:4, 50, replace=T),
measure = sample(c('cfl', 'led', 'linear', 'exit'), 50,
replace=T),
qty = round(runif(50) * 30),
qty.exit = 0,
delta.watts = sample(10.5:100.5, 50, replace=T),
cf = runif(50))
# Replace the values of several columns for rows where measure is "exit"
dt <- dt[measure == 'exit',
`:=`(qty.exit = qty,
cf = 0,
delta.watts = 13)]
这个问题是否有简单的 dplyr 解决方案?我希望避免使用 ifelse,因为我不想多次键入条件-这是一个简化的例子,但有时会有许多基于单个条件的赋值。
提前谢谢你的帮助!