在R中编写函数以创建新变量

时间:2018-09-12 13:35:16

标签: r function recode

在这里,我的主要问题是我的新变量将保持命名为“ x”,而不是我自己选择的“ newvar_test”。我想要一个新变量,可以使用旧变量在()中自己命名。然后,这是mydata中名为“ newvar_test”的新列。我知道我可以使用return,但是两者都没有真正解决问题。

date +%Y-%m-%d

1 个答案:

答案 0 :(得分:0)

这是你的意思吗?

y <- 1:11
get_val <- function(val) {
  val <- as.character(val)
  switch (val,
          "11" = 0,
          "1" = .5/7,
          "2" = 1/7,
          "3"= 3/7,
          "4" = 5.5/7,
          "5" = 1,
          "6" = 2.5,
          "7" = 4.5,
          6
  )    
}                                                    

x <- sapply(y, get_val)

x
> [1] 0.07142857 0.14285714 0.42857143 0.78571429 1.00000000 2.50000000 4.50000000 6.00000000
> [9] 6.00000000 0.00000000 6.00000000

该函数使用switch语句重新分配输入到其中的值。然后(而不是循环)将函数sapply应用于整个向量y。