【发布时间】:2018-03-30 18:30:23
【问题描述】:
这似乎是一个基本问题,但我找不到适合我的解决方案。我有一个矩阵results.m
> head(results.m)Perplexity Topics[1,] 550.8307 2[2,] 479.3954 3[3,] 424.5563 4[4,] 359.7448 5[5,] 339.7989 6[6,] 314.3516 7
我不明白如何创建一个列 diff 将等于两行之间的差异(例如,对于第 2 行,该值将是 -71.4353,在第 1 行中为空)和一列 @987654331 @ 这将等于两行之间的百分比变化(第 2 行为 13)。
> data.frame(diff(as.matrix(results.m)))game me an error
Error in r[i1, , drop = FALSE] - r[-nrow(r):-(nrow(r) - lag + 1L), , drop = FALSE] : non-numeric argument to binary operator
> tail(results.m, -1) - head(results.m, -1)也报错了
Error in tail(results.m, -1) - head(results.m, -1) : non-numeric
argument to binary operator
这里做错了什么?
【问题讨论】:
-
可能是
apply(results.m, 2, diff)。 -
@RuiBarradas 我在这样做时遇到错误
> apply(results.m, 2, diff) Error in r[i1] - r[-length(r):-(length(r) - lag + 1L)] : non-numeric argument to binary operator -
两列都是数字吗?似乎其中一个是
factor。也许diff(results.m[, 1]). -
@RuiBarradas 看来我有一个列表而不是矩阵,并且按照@Michriko 的建议,我已经能够创建
diff列。感谢您的帮助!
标签: r matrix row difference