`[` 的第一个参数的名称是什么?
What's the name of the first argument of `[`?
letter[2]
相当于 '['(letters,i=2)
,第二个参数是 i
.
第一个参数的名称是什么,所以下面的 2 个表达式是等价的?
lapply(1:3,function(x){letters[x]})
lapply(1:3,`[`,param1 = letters) # param1 to be replaced with solution
为了能够定义类似于上述函数的函数,您必须向函数传递两个参数。函数 [
确实需要各种输入。我们可以使用 Map
而不是 lapply
来为它提供从中提取的 data 和指示的 Indices需要提取的部分数据:
Map("[",list(letters),1:3)
[[1]]
[1] "a"
[[2]]
[1] "b"
[[3]]
[1] "c"
这与您上面的类似。希望这有帮助
你必须可以比"["
更具体,例如:
lapply(1:3, `[.numeric_version`, x = letters)
# [[1]]
# [1] "a"
#
# [[2]]
# [1] "b"
#
# [[3]]
# [1] "c"
(不确定 [.numeric_version
是否最合适,不过...我正在深入挖掘)
rlang::as_closure
和 purrr::as_mapper
,都基于 rlang::as_function
(见文档)
都会将 [
转换为具有命名参数的函数:
lapply(1:3, purrr::as_mapper(`[`), .x = letters)
lapply(1:3, rlang::as_closure(`[`), .x = letters)
# [[1]]
# [1] "a"
#
# [[2]]
# [1] "b"
#
# [[3]]
# [1] "c"
letter[2]
相当于 '['(letters,i=2)
,第二个参数是 i
.
第一个参数的名称是什么,所以下面的 2 个表达式是等价的?
lapply(1:3,function(x){letters[x]})
lapply(1:3,`[`,param1 = letters) # param1 to be replaced with solution
为了能够定义类似于上述函数的函数,您必须向函数传递两个参数。函数 [
确实需要各种输入。我们可以使用 Map
而不是 lapply
来为它提供从中提取的 data 和指示的 Indices需要提取的部分数据:
Map("[",list(letters),1:3)
[[1]]
[1] "a"
[[2]]
[1] "b"
[[3]]
[1] "c"
这与您上面的类似。希望这有帮助
你必须可以比"["
更具体,例如:
lapply(1:3, `[.numeric_version`, x = letters)
# [[1]]
# [1] "a"
#
# [[2]]
# [1] "b"
#
# [[3]]
# [1] "c"
(不确定 [.numeric_version
是否最合适,不过...我正在深入挖掘)
rlang::as_closure
和 purrr::as_mapper
,都基于 rlang::as_function
(见文档)
都会将 [
转换为具有命名参数的函数:
lapply(1:3, purrr::as_mapper(`[`), .x = letters)
lapply(1:3, rlang::as_closure(`[`), .x = letters)
# [[1]]
# [1] "a"
#
# [[2]]
# [1] "b"
#
# [[3]]
# [1] "c"