我的数据存在问题。
我的问题如下。我有一个列的值如下:
data <- c(1,2,4,6,8,13,14,16)
在新数据框中,我想在单独的列中记下这些值,直到第一个和每个后续之间的差值小于10(对于例如2-1&lt; 10,8-1&lt; 10但是13-1&gt; 10 - &gt;所以13是第二列中的第一个值)。 值不能在不同的列中重复。 以下示例输出:
1 13
2 14
4 16
6 0
8 0
请问你能帮帮我吗?
答案 0 :(得分:1)
这是一种方法。 (编辑以反映新的问题描述)
data <- c(1,2,4,6,8,13,14,16)
D2 <- split(data, (data - data[1]) %/% 10)
max_length <- max(lengths(D2))
D2 <- lapply(D2,
function(d, m) c(d, rep(0, m - length(d))),
max_length)
(D2 <- as.data.frame(D2))