Как получить соотношение каждого нечетного индексированного значения с четным индексированным значением столбца кадра данных в R? - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в программировании на R. Я имею дело со столбцом фрейма данных со значениями -

> data$col
[1] 37.80 37.76 37.27 36.67

Я хотел бы добавить новый столбец col_ratio в фрейм данных data так, чтобы результат data$col_ratio был -

1.00 NA 1.01 NA

, что в основном является соотношением (37.80/37.76) и (37.27/36.67).

Я пытался сделать -

> data$col_ratio <- data$col[1]/data$col[2]
> data$col_ratio[2] <- NA

Но я получаю результат как -

> data$col_ratio
[1] 1.001059       NA 1.001059 1.001059

Что мне не хватает для вывода как -

1.00 NA 1.01 NA

Спасибо!

1 Ответ

1 голос
/ 06 августа 2020

seq здесь ваш друг:

# idx gets 1, 3, 5, ...
idx = seq(1L, nrow(data), by=2L)

# initialize the column to be missing and real-valued
data$col_ratio = NA_real_
data$col_ratio[idx] = data$col[idx] / data$col[-idx]

-idx исключает нечетные индексы, т.е. это четные индексы.

случай, что nrow(data) нечетный, но основная идея c та же.

...