r中的"命名元组"

gob*_*lin 1 r

如果将pracma包加载到r控制台并键入

gammainc(2,2)
Run Code Online (Sandbox Code Playgroud)

你得到

   lowinc    uppinc    reginc 
0.5939942 0.4060058 0.5939942 
Run Code Online (Sandbox Code Playgroud)

这看起来像某种命名元组或其他东西.

但是,我无法弄清楚如何提取下面的数字lowinc,即0.5939942.代码(gammainc(2,2))[1]不起作用,我们得到

   lowinc
0.5939942
Run Code Online (Sandbox Code Playgroud)

这不是一个数字.

这是怎么做到的?

RHe*_*tel 6

可以用str(gammainc(2,2)[1])和检查,class(gammainc(2,2)[1])OP中提到的输出实际上是一个数字.它只是一个命名号码.用作向量属性的名称应该使输出更容易理解.

该函数unname()可用于获取没有名称的数字向量:

unname(gammainc(2,2))
#[1] 0.5939942 0.4060058 0.5939942
Run Code Online (Sandbox Code Playgroud)

要选择第一个条目,可以使用:

unname(gammainc(2,2))[1]
#[1] 0.5939942
Run Code Online (Sandbox Code Playgroud)

在这种特定情况下,更清晰的版本可能是:

unname(gammainc(2,2)["lowinc"])
Run Code Online (Sandbox Code Playgroud)