Подсчет последовательных значений СУХОЙ в пределах разделения по годам и месяцам

Я сделал пару вещей, чтобы избавиться от этой досадной ошибки, поскольку модификация .ini никогда не работала для меня.

  1. Установлен последний JDK
  2. Полностью удалить старую папку Eclipse IDE.
  3. На этот раз i Разархивировано в другое место

Двойной щелчок «eclipse.exe» Работает теперь как charm. Используйте рабочее пространство по умолчанию для загрузки старых проектов.

Я подозреваю, что это проблема Java Java JDK больше, чем затмение.

1
задан Rui Barradas 17 January 2019 в 17:54
поделиться

1 ответ

Исходя из ожидаемого результата, его можно создать, создав другую группу с логическим вектором, созданным по 'svalue'

library(data.table)
setDT(dfx)[svalue != 0, svalue := seq_len(.N), .(cumsum(svalue == 1), YEAR, MONTH)]
dfx
#   YEAR MONTH DAY  PCP SPELL svalue
#1: 1950    12  28  0.0   DRY      1
#2: 1950    12  29 11.7   WET      0
#3: 1950    12  30  0.0   DRY      1
#4: 1950    12  31  0.0   DRY      2
#5: 1951     1   1  0.0   DRY      1
#6: 1951     1   2  0.0   DRY      2
#7: 1951     1   3 20.3   WET      0

Или с помощью run-length-id из 'SPELL' [ 116]

setDT(dfx)[, svalue := seq_len(.N) * (svalue != 0), .(rleid(SPELL), YEAR, MONTH)]

данные

dfx <- structure(list(YEAR = c(1950L, 1950L, 1950L, 1950L, 1951L, 1951L, 
 1951L), MONTH = c(12L, 12L, 12L, 12L, 1L, 1L, 1L), DAY = c(28L, 
 29L, 30L, 31L, 1L, 2L, 3L), PCP = c(0, 11.7, 0, 0, 0, 0, 20.3
 ), SPELL = c("DRY", "WET", "DRY", "DRY", "DRY", "DRY", "WET"), 
  svalue = c(1L, 0L, 1L, 2L, 3L, 4L, 0L)), class = "data.frame",
 row.names = c(NA, -7L))
0
ответ дан akrun 17 January 2019 в 17:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: