零参数函数的这种语法是否适用于R?

时间:2016-05-24 19:19:59

标签: r

我有一个函数f,它不带参数,并返回带有一堆变量x1, x2, ... xi的数据框。稍后我会想要提取其中一个xi。那么,这种语法是否可行?

aColumn <- f()$xi

或者我必须这样做:

allX <- f()
aColumn <- allX$xi

f是一个复杂的函数,它本身就是一个非常复杂的Shiny应用程序的一部分,所以这个问题的答案将帮助我找出我得到的错误。

1 个答案:

答案 0 :(得分:0)

如果不了解您的功能细节,很难肯定地回答这个问题。但我不认为有任何明确的理由说明它不起作用。

这是一个(大概)类似的例子:

set.seed(123)
nums <- sample(5, 20, replace = TRUE)
myfun <- function(x = nums) rle(x)
myfun()$lengths
#[1] 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1

此结果与

相同
temp <- myfun()
temp$lengths
#[1] 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1

因此,据我所知,OP中提供的信息,我认为语法f()$xi是正确的。