r - 为值向量编写 R 函数
问题描述
关于在 R 中编写函数的任何提示:原始分数(例如 50)根据几个人的第二分数进行调整?第一个分数是50,第二个分数是一个1到5的向量;如果第二个分数是 1 则将 -5 添加到 50,如果是 2 则添加 -2.5,如果是 3,则添加 0,如果是 4,则添加 2.5,如果是 5,则将 5 添加到原始分数50.
解决方案
我认为这更适合您的需求:
any_tips <- function(x, score = 50) {
df <- tibble::tibble(sscore = x)
df <- df %>%
dplyr::mutate(
score = dplyr::case_when(
sscore == 1 ~ score - 5,
sscore == 2 ~ score - 2.5,
sscore == 3 ~ score,
sscore == 4 ~ score + 2.5,
sscore == 5 ~ score + 5
)
)
df
}
> any_tips(1:5)
# A tibble: 5 x 2
sscore score
<int> <dbl>
1 1 45
2 2 47.5
3 3 50
4 4 52.5
5 5 55
>
如果您仍然有不同的想法,请告诉我。
推荐阅读
- r - 如何在R中以特殊方式使用tapply
- javascript - 如何修复钩子以在 React JS 中设置状态?
- arrays - 当值明显匹配时,为什么我会遇到方法错误?
- python - 在 pymongo 中重新尝试失败的批量插入
- ios - 当应用程序在ios swift中处于活动状态时,如何为联系人进行后台同步?
- performance - 如何确定内存组织是否遵循行主要顺序或列主要顺序?
- python - R CMD javareconf -e 有更好的解决方案吗?
- wpf - 如何访问 wpf 中数据网格列标题内的文本框?
- c++ - 使用 XOR 操作仅使用 2 个指针来反转链表
- asp.net - 无法在命名空间中引用其中的类库 ado.net 实体数据模型 .edmx 在 asp.net Web 应用程序 webapi