You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言函数中通过名称访问xts对象的列?

如何在函数中通过名称访问xts对象的列?

你的代码返回NULL的原因是:使用ts$name时,R会将name当作字面列名处理,而不是解析你传入的变量值"GSPC.Close",自然找不到对应的列。

以下是两种可行的解决方法:

方法1:使用方括号索引

方括号会解析变量的实际值,返回单列的xts对象:

getSymbols("^GSPC", src="yahoo", from="2015-01-01", to = "2020-06-04")
str(GSPC)
frog <- function(ts, name) {
    ts[, name]
}
frog(GSPC, "GSPC.Close")

方法2:使用双括号索引

双括号同样会解析变量值,返回和$访问一致的底层向量:

getSymbols("^GSPC", src="yahoo", from="2015-01-01", to = "2020-06-04")
str(GSPC)
frog <- function(ts, name) {
    ts[[name]]
}
frog(GSPC, "GSPC.Close")

简单总结:

  • $仅支持字面量列名,无法解析变量
  • [, ]和[[ ]]可以解析变量,适合在函数中动态访问列

内容的提问来源于stack exchange,提问作者Ray Tayek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:52:08