Gracias Patricio Moracho por tu observación. Replanteo la pregunta. Estoy trabajando con R Studio y MySQL. A través de R estoy cargando y haciendo modificaciones en las tablas de MySQL . Adjunto un ejemplo Creo la tabla en MySQL, ajunto script (uso una tabla de ejemplo que incluye R)
CREATE TABLE `mtcars` (
`row_names` text,
`mpg` double DEFAULT NULL,
`cyl` double DEFAULT NULL,
`disp` double DEFAULT NULL,
`hp` double DEFAULT NULL,
`drat` double DEFAULT NULL,
`wt` double DEFAULT NULL,
`qsec` double DEFAULT NULL,
`vs` double DEFAULT NULL,
`am` double DEFAULT NULL,
`gear` double DEFAULT NULL,
`carb` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Una vez conectado a esta base de datos con R, base que llamé "prueba", cargo la tabla con el siguiente comando.
dbWriteTable(conn = mydb, name = "mtcars", mtcars, overwrite = TRUE, row.names = TRUE)
- mtcars es una tabla de ejemplo que tiene cargada R.
Por otro lado, sé que puedo hacer un Update de uno o más datos con el siguiente comando. En este ejempolo modifico el valor de la columna 'mpg' donde row.names = 'Mazda Rx4'; así tenemos:
dbSendQuery(mydb, "UPDATE prueba.mtcars SET mpg = 99 WHERE row_names = 'Mazda Rx4';")
De esta forma el Update se da correctamente, pero necesito que en lugar de ingresar el monto directamente, necesito utilizar una variable que pueda tomar cualquier valor, y modificar varios campos de la tabla simultaneamente.
Si creo el elemento llamado 'monto' y le asigno un valor, digamos el 99 del ejemplo anterior, como sigue.
monto <- 99 ## en R
Y sustituyo el 99 por 'valor'
dbSendQuery(mydb, "UPDATE prueba.mtcars SET mpg = monto WHERE row_names = 'Mazda Rx4';")
Lo anterior me genera el siguiente error.
Error in .local(conn, statement, ...) :
could not run statement: Unknown column 'valor' in 'field list'
Lo que provoca que el comando no sea dinámico, ya que este elemento llamado 'monto' podría tomar cualquier valor.
No sé si existe algún comando en R que permita hacer UPDATE de bloque de datos. O qué alternativa me recomiendan.
Gracias.