r - 使用 dplyr 根据另一列中的值添加新列
问题描述
我有一列数据框df$c_touch
:
c_touch
0
1
3
2
3
4
5
其中每个数字指的是持续时间,例如0 = 2 mins, 1 = 5 mins, 2 = 10 mins, 3=15 mins, 4=20 mins, 5=30 mins
.
我想添加另一列df$c_duration
就像
c_touch c_duration
0 2
1 5
3 15
2 10
3 15
4 20
5 30
到目前为止,我一直在使用一个循环,这有点丑/乱,我宁愿不使用它。是否有一种无循环的方式来添加额外的列,特别是使用 dplyr mutate 函数(因为我正在尝试使用 dplyr 重写我的所有代码)?
解决方案
library(dplyr)
df %>%
mutate(c_duration = case_when(
c_touch == 0 ~ 2,
c_touch == 5 ~ 30,
TRUE ~ c_touch * 5)
)
推荐阅读
- python - 熊猫连接多个数据帧,其中每个数据帧/表都有其单独的索引
- vue.js - 将所有数据存储在vuex或redux中好吗?
- r - 如何根据读数数量排除 R 中的患者?
- arrays - 程序在C中向字符串添加随机字符
- c# - 解析来自 c# 的参数的 oracle 查询
- python-3.x - 如何使用带有 python 的 API 连接到站点?
- php - PHP链接将问号更改为点
- c# - .NET Core 中 WebAPI 的 Angular UI,但主要目的仍然是 WebAPI,而不是前端应用程序
- android - 如何将 GeoPoint 从 Firebase - Firestore 映射到 Android 中的 Kotlin DTO 对象
- flutter - 为什么我的行按钮在颤动时溢出屏幕?