Octave 从倍频程数据帧访问数据时出现问题

Octave 从倍频程数据帧访问数据时出现问题,octave,Octave,我试图从满足某些标准的八度数据帧访问数据 让我们假设dataframe名称是一个带有comulns“日期”和“收盘价”的名称 假设我们打算在收盘价低于5时获得收盘价 我正在使用命令: A.Close(A.Close我无法重现该问题。您确定您的数据帧已正确初始化吗 pkg load dataframe A = dataframe( [1,2;3,4;5,6;7,8], 'colnames', { 'Date', 'Close Price' } ); A.Close( A.Close < 5

我试图从满足某些标准的八度数据帧访问数据

让我们假设dataframe名称是一个带有comulns“日期”和“收盘价”的名称

假设我们打算在收盘价低于5时获得收盘价

我正在使用命令:


A.Close(A.Close我无法重现该问题。您确定您的数据帧已正确初始化吗

pkg load dataframe
A = dataframe( [1,2;3,4;5,6;7,8], 'colnames', { 'Date', 'Close Price' } );
A.Close( A.Close < 5 )
% ans =
%    2
%    4
pkg加载数据帧
A=数据帧([1,2;3,4;5,6;7,8],'colnames',{'Date','Close Price'});
A.关闭(A.关闭<5)
%ans=
%    2
%    4

我怀疑您的错误可能与以下事实有关:您的列名是
Close\u Price
,但您试图通过“Close”对其进行索引。您是否有其他以“Close”开头的列?

不,不是这样。我在有问题的文本中键入了一个错误。更令人惊讶的是,在数据框中,我能够访问其他列umns使用这种形式的命令(例如,A.open(1:10)可以工作,它也可以用于其他列)。但当我尝试访问A.close时,它给出了一个提到subsref.m的错误。我不认为编译器找不到该列,因为它会在错误消息中告诉我确切的列号。我认为“查询名称close返回位置5”表示字符串“Close”有五个候选项可供选择。即,没有可唯一匹配此子字符串的列。例如,如果在我的示例中添加另一个名为“Close Call”的列,则当我执行A.colnames时,您将在“位置2”处出现此错误。我设置了名称:“日期、打开、高、低、关闭、调整关闭、音量。”“当我执行A.Open或任何其他不是“关闭”的列名时,一切正常。但一旦我写入A.Close,我就会收到以下错误消息:”错误:subsref.m查询名称Close返回的位置5 subsref.m查询名称返回的位置错误:从第87行第21列的subsref调用“我明白了。似乎发生的是您有两个包含单词“Close”的变量。因此使用“Close”仅匹配一个列名失败,因为子字符串匹配两个名称:
Close
,和
Adj_Close
。但是,我同意您的看法,在这种情况下,由于“Close”与列名完全匹配,它应该忽略其他部分匹配,因此我会将其视为一个错误。也许这已经报告并修复了我已经在开发中了…我会看一看。否则我会提交一个bug。同时,作为一种解决方法,按编号索引列(或更改名称)。不。开发中存在相同的bug。我会在bug追踪器上打开一个bug:)