5

我知道我可以这样做:

x <- list(a=1, b=1)
y <- list(a=1)
JSON <- rep(list(x,y),10000)
sapply(JSON, "[[", "a")

但是,我以$同样的方式努力使用

sapply(JSON, "$", "a")
sapply(JSON, "$", a)

另外,是否可以像其他语言一样将运算符用作函数?

例如a + b 相当于(+)(a, b)

4

1 回答 1

7

你可以,你只需要使用一个匿名函数$。我这与$' 的论点从未被评估过的事实有关......

sapply(JSON, function(x) `$`( x , "a" ) )

并回答你的第二个问题......是的,所有二进制算术运算符都可以使用反引号指定,就像这样......

a <- 2 
b <- 3

# a + b
`+`( a , b )
[1] 5
# a ^ b
`^`( a , b )
[1] 8
# a - b
`-`( a , b )
[1] -1
于 2013-09-12T11:13:26.943 回答