1

"a"2つの列に、タイトルと。の一連の数字があり"b"ます。

列"の値の差が隣接するセルとの差が10より大きい場合はR、列の値を変更したいと思います。"b"a"

例えば:

a   |   b
-----------    
1   |   1
2   |   1
3   |   1
4   |   1
21  |   1
22  |   1
23  |   1
24  |   1
... |   ...

次に、Rで列「b」の値を次のように変更します。

a   |   b
-----------    
1   |   1
2   |   1
3   |   1
4   |   0
21  |   0
22  |   1
23  |   1
24  |   1
... |   ...

a列の値4と21が互いに10より大きいためです。

どんな助けでも大歓迎です。

4

2 に答える 2

3
df <- data.frame(a = c(1:4, 21:24), b = 1)

# check whether differences are greater than 10 
diffs <- diff(df$a) > 10

# create `b`
df$b <- as.integer(!(c(FALSE, diffs) | c(diffs, FALSE)))

結果:

   a b
1  1 1
2  2 1
3  3 1
4  4 0
5 21 0
6 22 1
7 23 1
8 24 1
于 2013-01-10T11:00:52.600 に答える
0

いくつかの代替。

df <- data.frame(a = c(1:4, 21:24), b = 1L)
local({
 w10 <- with(df, which(diff(a) > 10)))
 df$b[c(w10, w10+1)] <<- 0L
})
于 2013-01-10T14:20:15.247 に答える