классифицировать значение между векторами и интерполировать затем R - PullRequest
0 голосов
/ 09 мая 2019

У меня есть большой фрейм данных, в котором есть много значений (df1) Кроме того, у меня есть второстепенный фрейм данных (df2), как временной ряд, но преобразованный в df.

Теперь я хочу выполнить каждое измерение df2 и классифицировать его между двумя столбцами df1.

df1 В основном выглядит так:

     km X0.5MNQ    MNQ X0.5MQ      a X0.75MQ      b     MQ      c   X2MQ   X3MQ      d
1  1  106.64 107.18 107.53 107.79  108.02 108.23 108.44 109.16 109.79 110.87 111.61
2  2  106.64 107.18 107.53 107.79  108.02 108.23 108.44 109.16 109.79 110.87 111.61
3  3  106.63 107.18 107.53 107.78  108.01 108.23 108.43 109.15 109.78 110.86 111.60
4  4  106.63 107.17 107.52 107.77  108.00 108.21 108.41 109.13 109.76 110.83 111.57
5  5  106.63 107.17 107.51 107.76  107.99 108.20 108.41 109.12 109.74 110.81 111.55

df2 выглядит так:

          Date Pegelstand      MKZ Pegel Pegelkm  MKZkm
1   1960-01-01    109.696 50491952 Pirna       2      4
2   1960-01-02    109.596 50491952 Pirna       2      4 
3   1960-01-03    109.616 50491952 Pirna       2      4
4   1960-01-04    109.596 50491952 Pirna       2      4
5   1960-01-05    109.606 50491952 Pirna       2      4
6   1960-01-06    109.756 50491952 Pirna       2      4
7   1960-01-07    109.846 50491952 Pirna       2      4

Я начал с некоторого кода, но мне чего-то не хватает, поэтому я не могу его продолжить.

workspace`<-...
files<-list.files(workspace,"csv", recursive = T)
data<-list()
  for (i in 1:length(files)){
    data[[i]]<-read.csv(paste(workspace,files[i],sep="/"), header = T, sep = ",")
    data[[i]]$Date<-as.Date(data[[i]]$Date)
    names(data[[i]])<-c("Date", "Pegelstand", "MKZ", "Pegel", "Pegelkm", "MKZkm")
  }
  #Zuordnung der Elbekilometer 
  for (i in 1:length(files)){
    ganglinie<-length(data[[i]]$Pegelstand)
    pegelkm<-mean(data[[i]]$Pegelkm)
    zeile_pegelkm<-which(fix$km==pegelkm) #Zeile in Fixierung mit Pegelwerten
    for (j in 1:ganglinie) {

     }
  }

В первом цикле я определяю список (data [[i]]) со всеми моими сериями времени df2, но преобразованными в формат dataframe. Далее я ищу строку ind df1, которая подходит к моему df2 $ Pegelkm (df1 $ km = df2 $ pegelkm).

Это контрольная строка, в которой я хочу найти свои два столбца, в которые вписывается измерение после измерения с помощью df2. Это должно произойти на шаге 2. поэтому, мне кажется, мне нужен цикл звукового сигнала.

Когда я знаю, куда вписывается мое измерение, я должен интерполировать его в зависимости от значений выбранных столбцов из цикла 2 в строке df1 $ km = df2 $ MKZkm.

Моя основная проблема - найти столбцы, в которые входит значение. Есть ли простое решение?

1 Ответ

0 голосов
/ 09 мая 2019

Полагаю, у вас нет проблем с выбором подходящей строки в df1?Затем вы можете заполнить только простой список или массив всеми значениями столбцов для этой строки.В качестве следующего шага вы можете проверить границы (первую и последнюю запись в этом списке) и найти ближайшую запись.

Но я не уверен, как вам нравится интерполировать ?!Я интерпретирую ваши значения как значения y и пропускаю соответствующие значения x.

...