Данный кадр данных с индексом и данных столбцов следующим образом:Вычислить среднее из строк при сопоставлении отдельных dataframe
AIndex <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
AData <- c(3,5,6,7,3,2,1,2,3,4,5,6,7,8,9)
DF <- data.frame(AIndex,AData)
И дали второй фрейм данных с некоторым перекрытием в индексе как так:
BIndex <- c(1,4,8,11,13)
BData <- c(3,5,7,6,5)
DF2 <- data.frame(BIndex,BData)
Моя цель - найти, где индекс в A и индекс в B совпадают в кадре данных A, а затем вычислить среднее значение этой строки в A + 2 строках.
Например, в первый раз, когда A и B совпадают в A, это строка # 1. Поэтому я хотел бы найти соответствующую точку данных в A (3) и следующих двух точках данных (5 и 6). Таким образом, среднее значение будет 4,6
Окончательный результат будет новый кадр данных, который выглядел так:
Index Data
1 4.6
4 4
8 3
11 6
13 8
Добро пожаловать на переполнение стека! Это может решить проблему, но, пожалуйста, также дайте объяснение. Многие новые пользователи приходят к SO, а объяснение с помощью кода помогает им узнать, как адаптировать код для решения своей проблемы. В этом случае, например, вы можете сказать, что важная команда - «merge» для идентификации соответствующих записей. – JenB
Благодарю вас за ваше предложение. @JenB Мои навыки в английском языке просто честны, но позвольте мне попробовать. Merge, как собственное имя, используется для объединения двух файлов данных, dat и DF2, с помощью идентификационного ключа, AIndex в dat (или x в атрибуте) и AIndex в DF2 (или y of.y). all.y = T указывает тип слияния, кажется правильным в MySql, включает все строки в DF2 $ BIndex (или y), но некоторые строки в $ AIndex. –