我想知道是否可以在foo
下面的函数输出中为每个矢量元素分配名称?
对于下面的示例,给$pubs
name的元素:"pubs_-1SD"
,"pubs_+1SD"
以及给$time
name的元素:"time_-1SD"
,"time_+1SD"
?
data <- read.csv('https://raw.githubusercontent.com/rnorouzian/e/master/salary.csv')
foo <- function(data, vars) lapply(data[,vars], function(x) mean(x) + c(-1, 1)*sd(x))
foo(data, c("pubs", "time")) # EXAMPLE OF USE
# $pubs
# [1] 5.348203 33.909862 ## `"pubs_-1SD"` and `"pubs_+1SD"
# $time
# [1] 3.312931 12.848359 ## `"time_-1SD"` and `"time_+1SD"`
您可以传递列名称,sapply
并使用分配名称setNames
:
foo <- function(data, vars) sapply(vars, function(x)
setNames(mean(data[[x]]) + c(-1, 1)*sd(data[[x]]),
paste0(x, '_', c('-', '+'), '1SD')), simplify = FALSE)
foo(data, c("pubs", "time"))
#$pubs
#pubs_-1SD pubs_+1SD
# 5.348203 33.909862
#$time
#time_-1SD time_+1SD
# 3.312931 12.848359
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句