English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
R, como herramienta profesional de estadísticas, pierde su funcionalidad si solo se puede importar y exportar datos manualmente, por lo que R admite la obtención de datos en lotes de archivos de formatos de almacenamiento de tablas populares (por ejemplo, CSV, Excel, XML, etc.).
CSV (Comma-Valores Separados, CSV, a veces también llamado Valor Separado por Caracteres, ya que el carácter de separación no tiene que ser una coma), es un formato de archivo de almacenamiento de tablas muy popular, adecuado para almacenar datos de tamaño mediano o pequeño.
Dado que la mayoría de los programas de software admiten este formato de archivo, se utiliza comúnmente para el almacenamiento y la interacción de datos.
CSV es esencialmente texto, su formato de archivo es extremadamente simple: los datos se guardan en forma de texto, línea por línea, cada registro separado por delimitadores y cada registro tiene la misma secuencia de campos.
以下是一个简单的 sites.csv 文件(存储在测试程序的相同目录下):
id,name,url,likes 1,Google,www.google.com,111 2,w3codebox,es.oldtoolbag.com,222 3,Taobao,www.taobao.com,333
CSV 使用逗号来分割列,如果数据中含有逗号,就要用双引号将整个数据块包括起来。
注意:包含非英文字符的文本要注意保存的编码,由于许多计算机普遍使用 UTF-8 编码,所以我是用 UTF-8 进行保存的。
注意: CSV 文件最后一行需要保留一个空行,否则执行程序会有警告信息。
Warning message: In read.table(file = file, header = header, sep = sep, quote = quote, : incomplete final line found by readTableHeader on 'sites.csv'
接下来我们就可以使用 read.csv() 函数来读取 CSV 文件的数据:
data <- read.csv("sites.csv", encoding="UTF-8) print(data)
如果不设置 encoding 属性,read.csv 函数将默认以操作系统的默认文字编码进行读取,如果你使用的是 Windows 中文版系统且没有设置过系统的默认编码,那么系统的默认编码应该是 GBK。所以请大家尽可能地统一文字编码以防出错。
El resultado de ejecutar el código anterior es:
id name url likes 1 1 Google www.google.com 111 2 2 w3codebox es.oldtoolbag.com 222 3 3 Taobao www.taobao.com 333
read.csv() 函数返回的是数据框,我们可以很方便地对数据进行统计处理,以下示例我们查看行数和列数:
data <- read.csv("sites.csv", encoding="UTF-8) print(is.data.frame(data)) # 查看是否是数据框 print(ncol(data)) # 列数 print(nrow(data)) # 行数
El resultado de ejecutar el código anterior es:
[1] TRUE [1] 4 [1] 3
以下统计数据框中 likes 字段最大对数据:
data <- read.csv("sites.csv", encoding="UTF-8) # likes 最大的数据 like <- max(data$likes) print(like)
El resultado de ejecutar el código anterior es:
[1] 333
也可以指定查找条件,类似于 SQL where 子句一样查询数据,需要用到的函数是 subset()。
En el siguiente ejemplo se busca likes 222 A los datos:
data <- read.csv("sites.csv", encoding="UTF-8) # likes es 222 los datos retval <- subset(data, likes == 222) print(retval)
El resultado de ejecutar el código anterior es:
id name url likes 2 2 w3codebox es.oldtoolbag.com 222
Nota:Las condiciones de igualdad se utilizan con ==.
Se pueden usar múltiples condiciones separadas por el símbolo &; en el siguiente ejemplo se busca likes mayor que 1 name es w3Los datos de codebox:
data <- read.csv("sites.csv", encoding="UTF-8) # likes es mayor que 1 name es w3Los datos de codebox retval <- subset(data, likes > 1 & name=="w3codebox) print(retval)
El resultado de ejecutar el código anterior es:
id name url likes 2 2 w3codebox es.oldtoolbag.com 222
El lenguaje R puede usar write.csv() La función guardará los datos en un archivo CSV.
Siguiendo el ejemplo anterior, guardaremos los datos con likes 222 Los datos se guardan en w3Archivo codebox.csv:
data <- read.csv("sites.csv", encoding="UTF-8) # likes es 222 los datos retval <- subset(data, likes == 222) # Escribir nuevo archivo write.csv(retval,"w3codebox.csv") newdata <- read.csv("w3codebox.csv") print(newdata)
El resultado de ejecutar el código anterior es:
X id name url likes 1 2 2 w3codebox es.oldtoolbag.com 222
X De los datos del conjunto newper, se puede eliminar X mediante el parámetro row.names = FALSE:
data <- read.csv("sites.csv", encoding="UTF-8) # likes es 222 los datos retval <- subset(data, likes == 222) # Escribir nuevo archivo write.csv(retval,"w3codebox.csv", row.names = FALSE) newdata <- read.csv("w3codebox.csv") print(newdata)
El resultado de ejecutar el código anterior es:
id name url likes 1 2 w3codebox es.oldtoolbag.com 222
Después de ejecutar, podemos ver w3Se ha generado con éxito el archivo codebox.csv.