Wush Wu, HJ Hsu and Johnson Hsieh
打開R ,執行source("http://wush978.github.io/R/init-swirl.R")
輸入library(swirl);swirl()
後即進入教學環境
chat()
可以打開聊天室issue()
可以打開issuesRBasic-07-Loading-Data
RDataEngineer-02-XML
RDataEngineer-03-JSON
RDataEngineer-04-Database
RDataEngineer-01-Parsing
RDataEngineer-05-Data-Manipulation
RDataEngineer-06-Join
套件中的資料
iris
data(spider, package = "iNEXT")
CSV (comma-separated values)
TSV (Tab Separated Values)
中文編碼
Year,Make,Model,
1997,Ford,E350
2000,Mercury,Cougar
"1997","Ford","E350"
1997,Ford,E350,"super, luxurious truck"
1997,Ford,E350,"super, ""luxurious"" truck"
1997, Ford, E350
1997,Ford,E350,4.9
人類習慣的是 10 進位 (Decimal)
電腦用的是 2 進位 (Binary)
16 進位 (Hexadecimal, Hex)
1 Byte (位元組) = 8 bit (位元) 是目前電腦計算記憶體的基本單位
1 Byte 可以表達 0 – 255 的值,正好可以用兩個 Hex Code 表達 (16 = 24)
UTF-8
BIG5
以 UTF-8 編碼寫成的 「中文」二字,在電腦看來是
若是以 BIG5 編碼讀入,會變成 「銝剜 」
讀取中文檔案時,必須先確定編碼,否則無法正確讀取
iconv
?iconv
閱讀其說明文件Encoding
, fileEncoding
Sys.getlocale()
, Sys.setlocale(locale = "cht")
RBasic-07-Loading-Data
64.242.88.10 - - [07/Mar/2004:16:05:49 -0800] "GET /twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables HTTP/1.1" 401 12846
64.242.88.10 - - [07/Mar/2004:16:06:51 -0800] "GET /twiki/bin/rdiff/TWiki/NewUserTemplate?rev1=1.3&rev2=1.2 HTTP/1.1" 200 4523
^[A-Z]{1}[1-2]{1}[0-9]{8}$
RDataEngineer-01-Parsing
<?xml version="1.0"?>
<小紙條>
<收件人>大元</收件人>
<發件人>小張</發件人>
<主題>問候</主題>
<具體內容>早啊,飯吃了沒? </具體內容>
</小紙條>
<html>
<head>
<script type="text/javascript" src="loadxmldoc.js">
</script>
</head>
<body>
<script type="text/javascript">
xmlDoc=loadXMLDoc("books.xml");
document.write("xmlDoc is loaded, ready for use");
</script>
</body>
</html>
<A>
<B>
<C/>
</B>
</A>
/A/B/C
//B
{
"firstName": "John",
"lastName": "Smith",
"sex": "male",
"age": 25
}
"firstName"
, "John"
25
[1, 2, "3"]
{ "a" : 1, "b" : "string", "c" : { "c1" : 1 } }
data.frame
)library(RSQLite)
Error in library(RSQLite): there is no package called 'RSQLite'
methods("dbConnect")
Error in .S3methods(generic.function, class, parent.frame()): no function 'dbConnect' is visible
實際利用 R 來讀取來自不同型態資料源的資料 請同學們完成
RDataEngineer-02-XML
RDataEngineer-03-JSON
RDataEngineer-04-Database
data.frame
、data.table
group_by
group_by
的輸出做操作summarise(flights, mean(dep_delay, na.rm = TRUE))
######## == summarise ==> result
group_by(flights, month) %>% summarise(flight, mean(dep_delay, na.rm = TRUE))
x1 <- filter(flights, ...)
x2 <- select(x1, ...)
x3 <- summarise(x2, ...)
x1
用filter(flights, ...)
取代x2 <- select(filter(flights, ...), ...)
x3 <- summarise(x2, ...)
summarise(select(filter(flights, ...), ...), ...)
把filter
的結果放到select
的第一個參數
x2 <-
filter(flights, ...) %>%
select(...)
x3 <- summarise(x2, ...)
把filter
的結果放到select
的第一個參數
把select
的結果放到summarise
的第一個參數
x3 <-
filter(flights, ...) %>%
select(...) %>%
summarise(...)
left_join
right_join
inner_join
full_join
anti_join
semi_join