У меня есть переменная x, которая содержит имена переменных для 10 матриц. Поэтому переменная от a
до j
содержит разные матрицы.
x = letters[seq( from = 1, to = 10 )]
letters[seq( from = 1, to = 10 )]
> [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
Я хотел бы изменить имена столбцов на всех этих матрицах. Я использовал функции eval (parse ()) и get (), такие как
> get(i)[0,] = n
Error in get(i)[0, ] = n : could not find function "get<-"
> colnames(eval(parse(text = i))) = n
Error in file(filename, "r") : cannot open the connection
In addition: Warning message:
In file(filename, "r") :
cannot open file 'a': No such file or directory
, где n
содержит имена столбцов, которые я хочу для матрицы, а i
- переменная цикла. edit: n
- это имя столбца, полученное из первой строки от a
до j
, которое меняется в каждом l oop.
for (i in x){
n = get(i)[1,]
# insert column changing codes
}
Есть ли способ изменить имя столбца из переменной, которая была вызвана из строки другой переменной?
Edit1:
Чтобы уточнить, я пытался выполнить манипулирование данными и моделирование в группе matrices
/ data frames
. В этом случае я специально хотел изменить column name
матриц, имя столбца матриц содержится в первой соответствующей матрице, поэтому у каждой матрицы свой набор имен столбцов. Используя другой vector
/ matrix
, содержащий имена этих матриц, я намеревался loop
через имена, чтобы обратиться к matrix
, а затем специально изменить имя столбца этих матриц.
В ожидании ответов я каким-то образом нашел метод, который, возможно, не самый эффективный и не работает в большинстве сценариев, но кажется мне относительно более простым:
y = get(i)
colnames(y) = n
assign((paste(i)), y)
Это будет циклично от a
до j
.
Спасибо за комментарии и ответы.