У меня есть один текстовый файл. Я хочу сделать некоторые вычисления (скользящее среднее), как показано ниже, и написать результаты. Текстовый файл содержит 15 столбцов и 601 строк.Как вычислить скользящее среднее из текстового файла?
columns <- paste0("X", 1:13)
ref <- read.table("D:\\DAS_asc.txt", sep="",header=TRUE)
library(zoo)
mean <- lapply(columns, function(column) {
rollapply(ref[[column]], 5, FUN = mean,na.rm=TRUE, fill=NA) })
, когда я только что напечатал «означает», чтобы увидеть результаты, я обнаружил, что расчеты не правильно (я сделал это вручную, чтобы проверить!). Я думал, что это может быть сама функция movingave, но я проверил и работал хорошо:
s=c(1,5,2,4)
rollapply(s, 2, FUN = mean,na.rm=TRUE, fill=NA)
[1] 3.0 3.5 3.0 NA
rollapply(s, 3, FUN = mean,na.rm=TRUE, fill=NA)
[1] NA 2.666667 3.666667 NA
Интересно, что случилось, когда мы делаем это с текстовым файлом?
первые две строки файла:
"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14"
"2" 0.0493461075417879 0.0262911450465596 0.0426611743228151 0.0954854469641096 0.0933782886825547 0.218212200747129 0.285405481705908 0.226218243796976 0.146648210899044 0.115716572518044 0.0675501818197432 0.069120070466305 0.281314574594234 0.364434947521643 0.0124844383491671
Да, но я указал от 1 до 13 здесь: 'columns <- paste0 (" X ", 1:13)' –
Хотите скорректировать среднее значение одного столбца или скользящее среднее по 13 столбцам для каждой строки ? –
@JonssonSali Почему вы говорите о текстовом файле? Я думаю, что вопрос заключается в простом вычислении скользящего среднего по 13 столбцам/переменным data.frame. Постарайтесь быть ясными и представить пример воспроизводимости, пожалуйста. – agstudy