【发布时间】:2019-12-02 17:31:49
【问题描述】:
我正在使用函数“rle”来计算向量中有多少个连续值。我的向量的第一部分是:
16992 32 96 8
48
144
8
8
8
8
8
8
8
8
8
8
8
但 rle 返回的长度为 '1 1 1 1 1 1 2 1 1 1 4 1 1'
和值'16992 32 96 8 48 144 8 8 8 8 8 8 8'
显然有 11 个连续的 8。请问有人可以帮忙吗?提前谢谢你。
更新: 我使用 dput() 查看我的数据并显示:
c(16992, 31.9999997615814, 96, 8, 48, 144, 8, 8, 8.00000023841858, 8, 7.99999976158142, 8, 8, 8, 8, 8.00000023841858, 7.99999976158142).
看到这个之后,看起来值有时刚好低于或高于 8,尽管当我 View() 向量时没有显示。是这个问题吗?
我有点困惑为什么这些值没有四舍五入到最接近的整数。我事先将 diff() 函数应用于这些时间点...
c(1390456832,
1390473824,
1390473856,
1390473952,
1390473960,
1390474008,
1390474152,
1390474160,
1390474168,
1390474176,
1390474184,
1390474192,
1390474200,
1390474208,
1390474216,
1390474224,
1390474232)
【问题讨论】:
-
请使用
dput显示示例,因为我无法复制它v1 <- scan(text = '16992 32 96 8 48 144 8 8 8 8 8 8 8 8 8 8 8', what = numeric(), quiet = TRUE);rle(v1)$lengths# [1] 1 1 1 1 1 1 11 -
如果我们看不到代码,就很难帮助调试它。什么代码不起作用?
-
如果
x <- c(16992, 32, 96, 8, 48, 144, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8)然后我从rle(x)得到的结果在我运行它时显示11 个连续的8。请提供我们可以复制和粘贴而无需进行任何更改的代码。 -
8.000000023841858和8不相等。如果你想让它平等,请rle(round(v1)$lengths) -
可能是那些初始数字不是整数
标签: r