R 将对象设置为自身

R 将对象设置为自身,r,R,我是R新手,对此处发布的函数有疑问:。为什么将对象设置为自身(例如“getmean=getmean”等)?它不能简单地写如下:list(set,get,setmean,getmean)因为list(set,get,setmean,getmean)不会用正确的名称标记列表元素。以下是标记列表和未标记列表之间差异的示例: > list(1, 2, 3) [[1]] [1] 1 [[2]] [1] 2 [[3]] [1] 3 > list(foo=1, bar=2, baz=3) $

我是R新手,对此处发布的函数有疑问:。为什么将对象设置为自身(例如“getmean=getmean”等)?它不能简单地写如下:
list(set,get,setmean,getmean)

因为
list(set,get,setmean,getmean)
不会用正确的名称标记列表元素。以下是标记列表和未标记列表之间差异的示例:

> list(1, 2, 3)
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

> list(foo=1, bar=2, baz=3)
$foo
[1] 1

$bar
[1] 2

$baz
[1] 3
请注意,在参数列表的上下文中,
=
用于提供命名参数,它不做任何赋值(与
不同的是

aa <- list(set, get, setmean, getmean)

它不必是完全相同的名称。

问题已经回答,但您也可以这样做以获得相同的结果

> object <- c('set', 'get', 'setmean', 'getmean')
> setNames(object = as.list(object), nm = object)
# $set
# [1] "set"
# 
# $get
# [1] "get"
# 
# $setmean
# [1] "setmean"
# 
# $getmean
# [1] "getmean"

setNames
在使用
lappy

时非常方便。我认为左边的术语是参数名,右边的术语是函数名。在这种情况下,它们是相等的,但并不总是正确的。很好,很有意义。谢谢。
cc <- list(apple=set, banana=get, ornage=setmean, grape=getmean)
cc$apple()
> object <- c('set', 'get', 'setmean', 'getmean')
> setNames(object = as.list(object), nm = object)
# $set
# [1] "set"
# 
# $get
# [1] "get"
# 
# $setmean
# [1] "setmean"
# 
# $getmean
# [1] "getmean"
> setNames(as.list(object), letters[1:4])
# $a
# [1] "set"
#
# $b
# [1] "get"
#
# $c
# [1] "setmean"
#
# $d
# [1] "getmean"