R在列之间分隔值

时间:2015-10-21 11:09:01

标签: r

我的数据存在问题。

我的问题如下。我有一个列的值如下: 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

请问你能帮帮我吗?

1 个答案:

答案 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))