R 语言植沟文件读取及保存方式

时间:2025-02-06 08:58:10

1. 读取CSV文件

data <- read.csv("input.csv", header=T)  # header=T 表示第一行是表头
  • 检查数据框
    print(is.data.frame(data))  # 检查是否为数据框
    print(ncol(data))  # 输出列数
    print(nrow(data))  # 输出行数
    
  • 筛选数据
    ret <- subset(data, salary > 3000 & dept == "IT")  # 筛选条件
    print(ret)
    

2. 读取Excel文件

install.packages("xlsx")  # 安装xlsx包
library(xlsx)
data <- read.xlsx("input.xlsx", sheetIndex = 1)  # 读取第一个工作表
  • 乱码问题:如果出现乱码,可以尝试指定编码:
    data <- read.xlsx("input.xlsx", sheetIndex = 1, encoding = "UTF-8")
    

3. 读取JSON文件

install.packages("rjson")  # 安装rjson包
library(rjson)
data <- fromJSON(file = "input.json")  # 读取JSON文件
json_data_frame <- as.data.frame(data)  # 转换为数据框

4. 读取XML文件

install.packages("XML")  # 安装XML包
library(XML)
data <- xmlParse(file = "input.xml")  # 解析XML文件

5. 从Web获取数据

install.packages("RCurl")  # 安装RCurl包
install.packages("XML")    # 安装XML包
install.packages("stringr")# 安装stringr包
install.packages("plyr")   # 安装plyr包

library(RCurl)
library(XML)
library(stringr)
library(plyr)

url <- "http://www.geos.ed.ac.uk/~weather/jcmb_ws/"
links <- getHTMLLinks(url)  # 获取页面中的所有链接
filenames <- links[str_detect(links, "JCMB_2015")]  # 筛选符合条件的文件名
filenames_list <- as.list(filenames)

# 定义下载函数
downloadcsv <- function(mainurl, filename) {
  filedetails <- str_c(mainurl, filename)
  download.file(filedetails, filename)
}

# 批量下载文件
l_ply(filenames, downloadcsv, mainurl = "http://www.geos.ed.ac.uk/~weather/jcmb_ws/")

6. 读取TXT文件

data <- read.table('input.txt', header = F, sep = ' ')  # 读取TXT文件
  • 参数说明
    • header = F:表示文件没有表头。
    • sep = ' ':指定分隔符为空格。

7. 连接MySQL数据库

install.packages("RMySQL")  # 安装RMySQL包
library(RMySQL)

# 连接数据库
mysqlconnection <- dbConnect(MySQL(), 
                             user = 'root', 
                             password = 'abcd123456', 
                             dbname = 'testdb', 
                             host = 'localhost')

# 查询数据
result <- dbSendQuery(mysqlconnection, "SELECT * FROM table_name")
data <- fetch(result, n = -1)  # 获取所有数据
dbClearResult(result)  # 清除结果
dbDisconnect(mysqlconnection)  # 断开连接

总结

  1. 文件读取

    • CSV:read.csv()
    • Excel:read.xlsx()
    • JSON:fromJSON()
    • XML:xmlParse()
    • TXT:read.table()
  2. Web数据获取

    • 使用RCurlXML包从网页中提取数据并下载文件。
  3. 数据库操作

    • 使用RMySQL包连接MySQL数据库并查询数据。
  4. 数据处理

    • 使用subset()筛选数据。
    • 使用as.data.frame()将JSON数据转换为数据框。
  5. 注意事项

    • 安装必要的包(如xlsxrjsonXMLRMySQL等)。
    • 处理乱码时指定编码(如encoding = "UTF-8")。
    • 数据库操作后记得关闭连接。

希望这份总结对你有帮助!如果有其他问题,欢迎随时提问。