r - 使用 case_when 替换 r 中的值
问题描述
我正在尝试在 r 中复制一些 Stata 代码。在我的 df 中,有一个变量“时间”和一个“曝光”(均为数字,因此具有 1、2、3 等值)。
这是原始Stata代码的样子:
replace time = (time - 31) if exposure == 0
这就是我尝试过的:
recoded_df <- recoded_df %>% mutate(time = case_when(exposure == 0 ~ (time - 31))
我收到代码中存在“意外符号”的错误。但我不知道我做错了什么。
解决方案
library(dplyr)
df <- data.frame(
exposure = c(0, 1),
time = c(81, 20)
)
df %>%
mutate(
time = case_when(exposure == 0 ~ time - 30,
TRUE ~ time)
)
exposure time
1 0 51
2 1 20
推荐阅读
- python - 从python中的txt读取原始音频文件
- java - 我的应用程序在片段内的列表视图中崩溃 onitemclick
- inno-setup - 准备安装向导页面看起来是空的
- visual-c++ - 未能手动创建可用的单文件程序集
- bash - 合并到单个文件 Bash 脚本时,将每个文件的文件名添加为分隔行
- angular - 角度列表 HttpClient
- spring-cloud - 在 Spring Sleuth 中使用现有值设置 traceId
- python - 如何将元组作为关键字参数传递 (kwarg)
- javascript - android webview 不支持异步 js 功能
- python - 基于类的上下文管理器与基于生成器的上下文管理器