¿Cómo utilizar sentencias SQL en lenguaje R?
Por supuesto, también es factible conectar R a una base de datos externa, operar la base de datos directamente en R y generar los resultados finales. La conexión a una base de datos en R requiere la instalación de paquetes de extensión adicionales. Dependiendo del método de conexión tenemos dos opciones: una es ODBC, que requiere instalar el paquete ROODBC y el controlador ODBC. El otro es DBI, que puede instalar el controlador correspondiente según el tipo de base de datos instalada. Debido a que este último preserva las características originales de cada base de datos, prefiero usar el modo de conexión DBI. Existen varios paquetes importantes que brindan conectividad DBI: RMySQL, RSQLite, ROracle, RPostgreSQL. Como puede verse por los nombres, corresponden a varias bases de datos convencionales.
Nota: El texto anterior proviene de R-blogger-SQL usando lenguaje R.
Vale la pena mencionar que cuando utilice el paquete sqldf, es posible que deba actualizar el software R a la versión 3.1.0; de lo contrario, la instalación no se realizará correctamente. Este artículo presenta brevemente un método para actualizar automáticamente el software R en un entorno Windows.
Actualizar el lenguaje R en Windows:
instalar paquetes(" installr ");
Biblioteca (instalador)#Cargar paquete
Updater()
Luego seleccione "Aceptar" para actualizar automáticamente.
Aunque hay muchas funciones excelentes en el lenguaje R, como agregado() y daply() que pueden contar marcos de datos, SQL es potente y no sólo puede limpiar, contar y calcular datos, sino también almacenarlos. y controlarlo, definir y llamar datos. A medida que más y más empresas contratan personal, exigen que los analistas de datos no solo dominen los métodos teóricos y las capacidades de programación del modelado estadístico y la minería de datos, sino que también tengan la capacidad de utilizar SQL. El autor también está aprendiendo SQL activamente.
Los siguientes son algunos programas que completé usando sqldf(). Aunque simple, este es el primer paso para aprender.
gt nombre lt-c (rep ('Zhang San', 1, 3), rep ('Li Si', 3))
gt tema lt-c ('Matemáticas ', 'chino', 'inglés', 'Matemáticas', 'chino', 'inglés')
gt puntuación lt-c (89, 80, 70, 90, 70, 80)
gtstuid lt-c(1, 1, 1, 2, 2, 2)
gtstuscore lt-data.frame (nombre, materia, puntuación, estudiante)
biblioteca gt (sqldf)
1. Calcula y organiza la puntuación total de cada persona (campos obligatorios: nombre, puntuación total)
gtsqldf('select name, sum(score) as todas las puntuaciones del grupo de puntuación de estu por nombre ordenar por todas las puntuaciones ')
Nombre de puntuación total
1 Zhang San 239
Li Si 240
2.Calcular y ordenar la puntuación total de cada persona (campos obligatorios: número de estudiante, nombre y puntuación total).
gtsqldf('seleccione nombre, estuid, suma(puntuación) como todas las puntuaciones del grupo de puntuación de estu por orden de nombre por todas las puntuaciones ')
Nombre stuid allscore
1Tres 1 239
Li Si 2 240
3. Calcule la puntuación más alta para cada materia individual (campos obligatorios: número de estudiante, nombre, curso, puntuación más alta).
gtsqldf('select stuid, nombre, materia, max(score) as maxscore of stuid group by stuid ')
stuid nombre sujeto maxscore
1 1 Zhang San Matemáticas 89
2 2 Li Si Matemáticas 90
4. Calcule la puntuación promedio de cada persona (campos obligatorios: número de estudiante, nombre, puntuación promedio).
gtsqldf('seleccione estuid, nombre, materia, avg(score) como puntuación promedio del grupo de puntuación estu por estuid ')
nombre de estuid materia avgscore
Tres trabajos en inglés 56638.66868686661
2 2 Lisi English 80.00000
5. Enumere los estudiantes con mejores puntajes en cada curso (campos obligatorios: número de estudiante, nombre, materia, Fracción).
gtsqldf('seleccione estuid, nombre, materia, max(score) como grupo de puntuación de estu por orden de materia por stuid maxscore ')
nombre de estuid sujeto maxscore
1 1 Trilingüe 80
2 2 Lisi Matemáticas 90
3 2 Lisi Inglés 80
8. Enumere el puntaje promedio de cada curso (obligatorio Complete el campos: curso, puntuación media).
gtsqldf('seleccionar materia, promedio(puntuación) como puntuación promedio del grupo de puntuación de estu por materia ')
Puntuación promedio de la materia
1 Matemáticas 89,5
2 Inglés 75.0
3 Idioma 75.0