Функция Match () работает только для 0, но не для других значений - PullRequest
0 голосов
/ 19 сентября 2018

Я использую данные временного ряда (импортированные с read.csv()) и хочу match() значения из другого фрейма данных (также импортированного с read.csv) в значения, записанные в моем временном ряду.Это выглядит так:

df1 <- data.frame(hue=rawdata[,"hue"])
# This is my Time Series-raw data
                    hue
2017-07-01 00:00:00   0
2017-07-01 00:01:00   0
2017-07-01 00:02:00   0
2017-07-01 00:03:00   0
2017-07-01 00:04:00   0
2017-07-01 00:05:00   0

Значения иногда изменяются между 0 и 7.Вот только head() print

И это тот фрейм данных, с которым я хочу проверить его:

df2 <- data.frame(hue=sz$hue, Q=sz$Q)
# sz is the imported csv file
  hue  Q
1   0  0
2   1 13
3   2 26
4   3 39
5   4 52
6   5 65

Здесь то же самое: Просто head() print.

Теперь, моя цель создать новый столбец рядом с hue в моих необработанных данных.в этом новом столбце я хочу Q -значения в зависимости от их hue из df2.Например: с нуля до пяти минут в 2017-07-01 значение Q в новом столбце будет равно 0, потому что hue равно 0.

Я пробовал много вещей с matchфункция как:

df1$match=sz$Q[match(df1$hue, sz$hue)]

Но это работает только для 0, а не для других значений, таких как 1,2,3 и т. д. R дает мне NA с в этих точках.

Это прекрасно работает в этом видео: Использование функции соответствия в R

На самом деле я не совсем уверен, действительно ли это проблема "соответствия" или проблема с большим форматом, потому что я проверил этидве вещи:

> df1["2017-07-21 23:20:00","hue"]==2 # the value at this date is actually 2!
[1] FALSE
> is.numeric(df1["2017-07-21 23:20:00","hue"])
[1] TRUE

Кто-нибудь знает, что я могу сделать, чтобы заставить R учитывать все значения?Большое спасибо, что нашли время для этого!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...