Data Input 匯入資料
從 R 中載入並執行指令稿中的程式碼
source("script.R")
R 在執行程式時,可以順便輸出執行的內容
source("script.R", echo = TRUE)
載入檔案中的歷史指令
loadhistory("my_history.R")
R 內建資料
R 的 datasets 套件提供了大約 100 個內建的資料集
data()
# Data sets in package ‘datasets’:
# AirPassengers Monthly Airline Passenger Numbers 1949-1960
# BJsales Sales Data with Leading Indicator
# BJsales.lead (BJsales) Sales Data with Leading Indicator
# BOD Biochemical Oxygen Demand
# CO2 Carbon Dioxide Uptake in Grass Plants
....
head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
to list the data sets in all available packages.
data(package = .packages(all.available = TRUE))
Data sets in package ‘blotter’:
IBM IBM stock price data for one month
amzn Hypothetical Intra-Day AMZN Trades
amzn.trades (amzn) Hypothetical Intra-Day AMZN Trades
Data sets in package ‘survival’:
aml (leukemia) Acute Myelogenous Leukemia survival data
bladder Bladder Cancer Recurrences
bladder1 (bladder) Bladder Cancer Recurrences
bladder2 (bladder) Bladder Cancer Recurrences
cancer NCCTG Lung Cancer Data
..
CSV 檔案輸入
read.csv("data-1.csv")
sep 參數可指定分隔字元:
read.csv("data-tab-1.csv", sep = "\t")
read.csv 亦可接受 URL:
read.csv("http://www.your.host/data.csv")
文字檔案輸入
scan() 可以將檔案中的資料直接讀取進來,變成一個向量:
scan("data-2.txt")
使用 scan 配合樣板讀取資料:
scan("data-3.txt", list(name = "", val.a = 0, val.b = 0))
假設文字檔 data-3.txt 每一筆資料包含一個字串與兩個數值:
John 2.4 33 Joe 3.2 12 Mary 9.2 11
Dan 6 23 Willy 3.9 33
scan("data-3.txt", list(name = "", val.a = 0, val.b = 0))
Read 5 records
$name
[1] "John" "Joe" "Mary" "Dan" "Willy"
$val.a
[1] 2.4 3.2 9.2 6.0 3.9
$val.b
[1] 33 12 11 23 33
假設文字檔 data-4.txt 都是一些字元,例如:
Mary Joe John
Willy Dan
則使用:
scan("data-4.txt", "")
Read 5 items
[1] "Mary" "Joe" "John" "Willy" "Dan"
load 函數則可將儲存的變數載入:
``` rm(list = ls()) load("xy.RData")
ls() [1] "x" "y"
ls.str() x : num [1:3] 1.2 3.4 5.6 y : num [1:3] 1.44 11.56 31.36
* ##### readRDS(): 從 rds 檔案中載入變數,可以使用 readRDS 函數:
women2 <- readRDS("women.rds") identical(women, women2)
```
Reference:
- R 資料輸入與輸出 - G. T. Wang
- Importing Data in R Programming - Easy to Follow Guide for Beginners! - DataFlair
- 匯入資料 · R Basic
- 如何獲取資料:載入常見檔案格式 – DataInPoint – CSV、TXT、Excel 試算表與 JSON
- 如何獲取資料:擷取網頁內容(上) – Python 使用 pyquery、R 語言使用 rvest - DataInPoint – Medium
- 如何獲取資料:擷取網頁內容(下) – 從 Python 與 R 語言使用 Selenium WebDriver 操控瀏覽器 - DataInPoint – Medium
- 如何獲取資料:向資料庫查詢 – DataInPoint – Medium