Это можно сделать с помощью Map
, чтобы получить последовательность индексов из столбцов «x», поднастроить столбец «value» для «y», основываясь на этом, получить mean
и создать значение «mean.value». 'column in' x '
x['mean.value'] <- sapply(do.call(Map, c(f = `:`, x)), function(x) mean(y$value[x]))
#
# start end mean.value
#1 1 2 0.3188163
#2 3 4 0.7405306
Его также можно упростить как
x['mean.value'] <- mapply(function(i, j) mean(y$value[i:j]), x$start, x$end)
Аналогичным вариантом с tidyverse
будет использование map2
(из purrr
)
library(tidyverse)
x %>%
mutate(mean.value = map2_dbl(start, end, ~ mean(y$value[.x:.y])))
Пара CRLF является ожидаемым маркером конца строки (EOL) на большинстве протоколов Интернета.
Здесь, "Принцип Устойчивости Postel" должен применяться. Будьте либеральны в том, что Вы принимаете, но строгий в том, что Вы отправляете. Так, будьте готовы получить просто LF, но если Вы отправляете, данные используют то, чего требуют соответствующие стандарты.
Это не проблема совместимости языка, но или проблема файла или проблема протокола. Мудрый файлом: Unix использует \n в качестве возврата каретки, Windows использует \r\n, и я думаю используемая MacOS (не уверенный в теперь) \r. Много 'кросс-платформенных' языков абстрагируют это в зависимой переменной платформы. Мудрый протоколом: что указывает протокол.