我正在尝试在R中使用内核规范相关分析,其用法是:
**## S4 method for signature 'matrix'**
kcca(x, y, kernel="rbfdot", kpar=list(sigma=0.1),
gamma = 0.1, ncomps = 10, ...)
Arguments
x a matrix containing data index by row
y a matrix containing data index by row
所以我的x和y矩阵非常大且稀疏,它们属于具有6个插槽的类'dgCMatrix'。我是R的新手,我很困惑如何使用这个类的矩阵作为kcca方法的输入矩阵。
当我按原样使用它们时:
kcca(Data1_mat, Data2_mat, kernel="rbfdot", kpar=list(sigma=0.1),
gamma = 0.1, ncomps = 10)
我收到此错误: x * x中的错误:二元运算符的非数字参数
请帮忙。
由于
答案 0 :(得分:1)
是的,确实:kcca()
包目前只能使用传统的R矩阵(密集)。
对代码进行一些检查,并且一个示例确实表明确实可能不需要进行太多更改,并且增强kernlab
包以使用Matrix包中的sparseMatrix对象。
值得注意的是kernlab
可以用来使“kernelMatrix”对象本身稀疏。