Создание вектора значений с общими чертами - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь создать вектор символьных данных в форме "ггггмм".

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

for(i in 2000:2010){
yyyy.mm=format(seq(i+.01, 1+.12, by=.01), digits=6)
yyyymm=sub("[.]","",yyyy.mm)
name=paste0("Y",i)
assign(name, yyyymm)
}

date=as.character(c(Y2000, Y2001, etc.))

Есть ли способ систематически добавлять символы к каждому элементу вектора? Как у меня есть вектор в виде

y=c("2000","2001",...)

Другой в форме

m=c("01", "02",...)

И я добавляю каждый элемент в m в конец каждого элемента в y? Буду признателен за любые другие предложения о том, как подойти к этому.

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Если у вас уже есть два вектора, вы можете использовать expand.grid

Например

years <- seq(2000, 2012, 1)
months <- seq(1, 12, 1)

ymo <- expand.grid(years, months)
key <- paste0(ymo$Var1, ymo$Var2)

Однако, если вы хотите, чтобы формат последовательности имел предшествующий ноль для месяцев с одной цифрой («201201» против «20121»), вам придется дополнительно обработать вектор месяца перед расширением.

0 голосов
/ 09 апреля 2019

Это то, что вы хотите?

seq(as.Date("2000-01-01"),as.Date("2010-12-31"),1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...