Для каждой даты введите неделю года, к которой она принадлежит, форматируя ее с помощью format()
, используя %U
заполнителей формата %W
. %U
рассматривает воскресенье как первый день недели, тогда как %W
считает понедельник первым днем недели. Вот пример:
now <- as.Date(Sys.time())
dates <- seq(now, now + 25, by = "1 day")
dat <- data.frame(Dates = dates, Week = format(dates, format = "%W"))
head(dat, 10)
Который дает:
> head(dat, 10)
Dates Week
1 2011-11-06 44
2 2011-11-07 45
3 2011-11-08 45
4 2011-11-09 45
5 2011-11-10 45
6 2011-11-11 45
7 2011-11-12 45
8 2011-11-13 45
9 2011-11-14 46
10 2011-11-15 46
Хотя из вашего вопроса неясно, что именно вы хотите сделать, способ сопоставить этот вектор дат (ну, мой кадр данных dat
выше) через merge()
. Скажем, у нас есть вектор недель, который мы хотим сопоставить, и некоторые связанные данные в кадре данных weekdat
:
weekdat <- data.frame(Week = 44:50, Price = c(10, 20, 25, 30, 20, 15, 10))
. Тогда мы можем связать dat
с weekdat
, используя merge()
как таковую :
> merge(dat, weekdat)
Week Dates Price
1 44 2011-11-06 10
2 45 2011-11-07 20
3 45 2011-11-08 20
4 45 2011-11-09 20
5 45 2011-11-10 20
6 45 2011-11-11 20
7 45 2011-11-12 20
8 45 2011-11-13 20
9 46 2011-11-14 25
10 46 2011-11-15 25
11 46 2011-11-16 25
12 46 2011-11-17 25
13 46 2011-11-18 25
14 46 2011-11-19 25
15 46 2011-11-20 25
16 47 2011-11-21 30
17 47 2011-11-22 30
18 47 2011-11-23 30
19 47 2011-11-24 30
20 47 2011-11-25 30
21 47 2011-11-26 30
22 47 2011-11-27 30
23 48 2011-11-28 20
24 48 2011-11-29 20
25 48 2011-11-30 20
26 48 2011-12-01 20
Существуют другие способы сопоставления или привязки дат к неделям, но приведенное выше должно дать вам что-то для работы.
Это проблема с dx, которая является частью сборки, которая превращает ваши файлы Java .class в файлы .dx для упаковки в Android. В соответствии с этим:
https://code.google.com/p/android/issues/detail?id=34193
, если функция имеет множественные пути возврата, dx объединяет инструкцию return в одну команду возврата, поэтому во время отладки отладчик не может определить, к какой строке относится возврат, и что-то происходит. Это соответствует тому, что я вижу, когда пытаюсь воспроизвести вашу проблему: каждый раз через цикл он проверяет if (a == 3)
, переходит в конец return 0
в конце и затем возвращается обратно в цикл. Вы видите, что последний return 0
соединяется с return retval
в середине цикла.
Я сомневаюсь, что это будет исправлено в ближайшее время, поэтому вам просто нужно научиться жить с Это. Извините, я знаю, что это безумно.
Вот что сработало для меня, по крайней мере, для входа в исходный код Android SDK:
build.gradle
вашего приложения и установите значение compileSdkVersion
соответственно. compileSdkVersion
назад. Попробуйте Build -> Rebuild project, а затем Shift + F9. У вас устаревший код работает на приложении.