首页 > 解决方案 > 为值向量编写 R 函数

问题描述

关于在 R 中编写函数的任何提示:原始分数(例如 50)根据几个人的第二分数进行调整?第一个分数是50,第二个分数是一个1到5的向量;如果第二个分数是 1 则将 -5 添加到 50,如果是 2 则添加 -2.5,如果是 3,则添加 0,如果是 4,则添加 2.5,如果是 5,则将 5 添加到原始分数50.

标签: rfunction

解决方案


我认为这更适合您的需求:

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  
>

如果您仍然有不同的想法,请告诉我。


推荐阅读