У меня есть имя матрицы в виде строки и вы хотите присвоить столбцу этой матрицы.Как назначить подмножество объекта R с именем, заданным как строка
A <- matrix(1:4,2)
v <- 10:11
name <- "A"
get(name)[,2] <- v
Это не работает, потому что LHS просто значение (т.е. вектор) и потерял значение «второй колонке А».
eval(parse(text=paste0(name,'[,2]<- v')))
Это делает работу, но многие люди препятствуют использованию такой структуры. Каков рекомендуемый способ сделать это?
EDIT: Большинство комментариев по схожим проблемам, которые я нашел препятствовать использованию имен объектов, которые могут быть переданы только в виде строк и вместо того, чтобы способствовать использованию списков, т.е.
l <- list(A=matrix(1:4,2))
v <- 10:11
name <- "A"
l[[name]][,2] <- v
, но это не действительно ответьте на мой вопрос.
вы должны сделать свой вопрос более ясным –
Если вы преобразуете матрицу в dataframe, вы сможете использовать 'assign' i.e. A <- as.data.frame (A); assign (name, '[[<-' (get (name), 'V2', value = v)) ' – akrun
Если вам действительно нужно ...' assign (name, {B <- get (name); B [, 2] <- v; B}) ' – bergant