在这里,我的主要问题是我的新变量将保持命名为“ x”,而不是我自己选择的“ newvar_test”。我想要一个新变量,可以使用旧变量在()中自己命名。然后,这是mydata中名为“ newvar_test”的新列。我知道我可以使用return,但是两者都没有真正解决问题。
date +%Y-%m-%d
答案 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。