расширить имена, чтобы соответствовать последнему известному - PullRequest
0 голосов
/ 13 декабря 2018

Предположим, что data.frame:

df <- structure(list(Dates = structure(1:2, .Label = c("2017-05-02", 
      "2017-07-30"), class = "factor"), Var1 = c(1, 2), X1 = c(3, 4
       ), X2 = c(5, 6), Var2 = c(7, 8), X3 = c(9, 10), X4 = c(11, 12
       )), class = "data.frame", row.names = c(NA, -2L))

Что выглядит следующим образом:

      Dates Var1 X1 X2 Var2 X3 X4
1 2017-05-02    1  3  5    7  9 11
2 2017-07-30    2  4  6    8 10 12

Есть ли способ расширить известные имена столбцов на последовательные?Таким образом, это будет выглядеть так:

       Dates Var1 Var1 Var1 Var2 Var2 Var2
1 2017-05-02    1    3    5    7    9   11
2 2017-07-30    2    4    6    8   10   12

Фактический фрейм данных намного больше с гораздо более известными и неизвестными переменными, поэтому предпочтителен автоматический подход.

1 Ответ

0 голосов
/ 13 декабря 2018

Предполагая, что вы хотите переименовать столбцы, которые начинаются с "X", мы можем replace их с NA, а затем использовать na.locf, чтобы получить предыдущие имена столбцов.

library(zoo)

names(df) <- na.locf(replace(names(df), grepl("^X", names(df)), NA))
df
#       Dates Var1 Var1 Var1 Var2 Var2 Var2
#1 2017-05-02    1    3    5    7    9   11
#2 2017-07-30    2    4    6    8   10   12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...