Я использую данные временного ряда (импортированные с 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 учитывать все значения?Большое спасибо, что нашли время для этого!