У меня есть кадр данных с именами столбцов, как показано в данных dput
ниже.
structure(list(mosales = c(1L, 1L, 1L, 12L, 1L), sale123 = c(14.86,
8.97, 6.44, 463.61, 15.94), totsales = c(1L, 1L, 1L,
30L, 1L), totqty = c(1L, 1L, 1L, 34L, 2L), unqsales = c(1L,
1L, 1L, 6L, 2L), x1_rank_1 = c(1L, 1L, 1L, 0L, 1L), x1_rank_4 = c(0L,
0L, 0L, 1L, 0L), x1_rank_3 = c(0L, 0L, 0L, 0L, 0L), x1_rank_2 = c(0L,
0L, 0L, 0L, 0L), x2_rank_2 = c(1L, 1L, 0L, 0L, 1L), x2_rank_1 = c(0L,
0L, 1L, 0L, 0L), x2_rank_5 = c(0L, 0L, 0L, 1L, 0L), x2_rank_4 = c(0L,
0L, 0L, 0L, 0L), x2_rank_3 = c(0L, 0L, 0L, 0L, 0L), x3_rank_1 = c(1L,
1L, 1L, 0L, 1L), x3_rank_4 = c(0L, 0L, 0L, 1L, 0L), x3_rank_3 = c(0L,
0L, 0L, 0L, 0L), x3_rank_2 = c(0L, 0L, 0L, 0L, 0L), x4_rank_1 = c(1L,
1L, 1L, 0L, 0L), x4_rank_5 = c(0L, 0L, 0L, 1L, 0L), x4_rank_2 = c(0L,
0L, 0L, 0L, 1L), x4_rank_4 = c(0L, 0L, 0L, 0L, 0L), x4_rank_3 = c(0L,
0L, 0L, 0L, 0L), x5_rank_1 = c(1L, 1L, 1L, 0L, 0L), x5_rank_4 = c(0L,
0L, 0L, 1L, 0L), x5_rank_2 = c(0L, 0L, 0L, 0L, 1L), x5_rank_3 = c(0L,
0L, 0L, 0L, 0L)), row.names = c(36L, 41L, 72L, 79L, 137L), class = "data.frame")
Я пытаюсь заменить имена столбцов, которые начинаются с x1_rank, x2_rank .. and so forth
, именами, такими, что " x1_rank " следует заменить на мозаики, " x2_rank " следует заменить на sales123 , " x3_rank " заменить на " totsales ", " x4_rank"следует заменить на" totqty", а" x5_rank"заменить на" unqsales".
Таким образом, конечные имена столбцов будут выглядеть так:
mosales, sale123, totsales, totqty, unqsales, mosales_1, mosales_2,... sale123_1, sale123_2,... totsales_1, totsales_2,... totqty_1, totqty_2,... unqsales_1, unqsales_2,...
Я попытался использовать цикл for и gsub, как показано ниже.Этот код работал без ошибок, но я не получил то, что искал.Не уверен, где находится ошибка.
df1 <- df
z <- names(df)
for (i in 1:length(z)){
gsub(paste0("x",i,"_rank"), z[i], names(df1))
}
df - это кадр данных, который может быть создан с использованием указанных выше данных dput.