我试图使用lsa::cosine
函数推导分布在数据帧连续行中的向量之间的余弦值.我的原始数据帧由15个数字列构成,每行表示一个唯一的向量
我的挑战是创建一个反映cosine(vec1, vec2)
的新变量(例如cosineraw).Vec1是第1行的向量,Vec2是下一行(前导)的向量.我需要这个函数来为非常大的数据帧循环行,并试图避免for循环.本质上,我需要为每一行计算一个余弦值,与停在数据帧倒数第二行的下一行进行对比(因为最后一次观察没有余弦值).
我try 按行 Select 观察结果:
dat <- mydat %>% rowwise %>% mutate(cosraw = cosine(as.vector(t(select_all))), as.vector(t(lead(select_all))))
但是我得到了一个"参数不是矩阵"的错误
单独来看,此代码段可以工作:
问题是行索引必须是相对的.这只适用于行1和行2,而不是作为跨所有行滚动的函数的基础.
有没有办法避免"for"循环?