Скажем, у меня есть фрейм данных x1
:
x1 <- data.frame(Var1 = 1, Var2 = 2, Var3 = 3)
Чтобы отредактировать ячейку, произнесите строку 1 из Var1
Я хотел бы сделать:
> x1 <- data.frame(Var1 = 1, Var2 = 2, Var3 = 3)
> x1
Var1 Var2 Var3
1 1 2 3
> x1[1,1] <- 10
> x1
Var1 Var2 Var3
1 10 2 3
Теперь мой вопросКак получить тот же результат, используя paste (), чтобы указать фрейм данных следующим образом: paste0("x", 1)
.
Я пробовал следующее:
paste0("x", 1)[1,1] <- 10 #obviously won't work
Использование assign()
: assign(paste0("x", 1)[1,1], 10)
Использование get()
: get(paste0("x", 1))[1,1] <- 10
Использование eval()
: eval(parse(paste0("x", 1)))[1,1] <- 10
Все разрешаются с одной и той же ошибкой:
цель назначения расширяется до неязыкового объекта.
Как я могу решить эту проблему без каких-либо обходных путей?
Редактировать:
Как предлагается в комментариях, следующие работы:
y <- get(paste0("x", 1))
y[1,1] <- 10
assign(paste0("x", 1), y)
Но мне было интересно, есть ли прямой способ сделать это, вместо этого обходного пути.