KDB:将函数应用于字典中的所有值
KDB: apply function to all values in a dictionary
我有一个字典,不同的前缀对应不同的键。我想向字典中的每个值附加和预添加字符串。
例如:
filePrefixes: `QCentral`QWest`QEast!("GLO_CCEUML_CSFBSL_";"GLO_CCALML_CSFBSL_";"GLO_CCAPML_CSFBSL_")
而且我想预先添加 folderPath 并附加 dateFormat 和文件扩展名“.csv”。
所以字典应该是这样的:
filePrefixes: `QCentral`QWest`QEast!("..\..\code\products\Q\ShortLocator2\Request Files\GLO_CCEUML_CSFBSL_20181203_1948.csv";"..\..\code\products\Q\ShortLocator2\Request Files\GLO_CCALML_CSFBSL_20181203_1948.csv";"..\..\code\products\Q\ShortLocator2\Request Files\GLO_CCAPML_CSFBSL_20181203_1948.csv")
我做了这样的事情。不确定是否有更好的方法:
filename: (value filePrefixes),\:(dateFormat,".csv");
filePaths: string[folderPath],/:(filename);
filePrefixes:(key filePrefixes)!(filePaths);
如果有帮助,可以直接在字典中修改这些值。根据您的示例代码对 dateFormat
和 folderPath
做出一些假设:
dateFormat:"20181203_1948";
folderPath:"..\..\code\products\Q\ShortLocator2\Request Files\1\"
这可以与您在上面提供的步骤结合使用而不提取值:
q)show filePrefixes:folderPath,/:filePrefixes,\:dateFormat,".csv"
QCentral| "..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCEUML_CSFBSL_20181203_1948.csv"
QWest | "..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCALML_CSFBSL_20181203_1948.csv"
QEast | "..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCAPML_CSFBSL_20181203_1948.csv"
本质上,这些值就像一个列表,有一些限制,在 Q for mortals 的 dictionaries 部分简要讨论。
我有一个字典,不同的前缀对应不同的键。我想向字典中的每个值附加和预添加字符串。
例如:
filePrefixes: `QCentral`QWest`QEast!("GLO_CCEUML_CSFBSL_";"GLO_CCALML_CSFBSL_";"GLO_CCAPML_CSFBSL_")
而且我想预先添加 folderPath 并附加 dateFormat 和文件扩展名“.csv”。
所以字典应该是这样的:
filePrefixes: `QCentral`QWest`QEast!("..\..\code\products\Q\ShortLocator2\Request Files\GLO_CCEUML_CSFBSL_20181203_1948.csv";"..\..\code\products\Q\ShortLocator2\Request Files\GLO_CCALML_CSFBSL_20181203_1948.csv";"..\..\code\products\Q\ShortLocator2\Request Files\GLO_CCAPML_CSFBSL_20181203_1948.csv")
我做了这样的事情。不确定是否有更好的方法:
filename: (value filePrefixes),\:(dateFormat,".csv");
filePaths: string[folderPath],/:(filename);
filePrefixes:(key filePrefixes)!(filePaths);
如果有帮助,可以直接在字典中修改这些值。根据您的示例代码对 dateFormat
和 folderPath
做出一些假设:
dateFormat:"20181203_1948";
folderPath:"..\..\code\products\Q\ShortLocator2\Request Files\1\"
这可以与您在上面提供的步骤结合使用而不提取值:
q)show filePrefixes:folderPath,/:filePrefixes,\:dateFormat,".csv"
QCentral| "..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCEUML_CSFBSL_20181203_1948.csv"
QWest | "..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCALML_CSFBSL_20181203_1948.csv"
QEast | "..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCAPML_CSFBSL_20181203_1948.csv"
本质上,这些值就像一个列表,有一些限制,在 Q for mortals 的 dictionaries 部分简要讨论。