Coursera代碼筆記:Getting and cleaning data (1)

1. Download Data

if(!file.exists("data")) { ? ?dir.create("data")}

fileUrl<-"https://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD"

download.file(fileUrl,destfile="./data/cameras.csv",method="curl")

list.files("./data")

2. Reading Local File (.csv)

cameraData<-read.table("./data/cameras.csv",sep=",",header=TRUE)

head(cameraData)

3. Reading Excel File (.xlsx)

library(xlsx)

cameraData<-read.xlsx("./data/cameras.xlsx",sheetIndex=1,header=TRUE)

head(cameraData)

## Reading specific rows and columns

colIndex<-2:3

rowIndex<-1:4

cameraDataSubset<-read.xlsx("./data/cameras.xlsx",sheetIndex=1,colIndex=colIndex,rowIndex=rowIndex)

cameraDataSubset

3. Reading XML and HTML

library(XML)

fileUrl<-"http://www.w3schools.com/xml/simple.xml"

doc<-xmlTreeParse(fileUrl,useInternal=TRUE)

rootNode<-xmlRoot(doc)

xmlName(rootNode) ? #查看文件標(biāo)題

names(rootNode) ? #查看所有子主題

rootNode[[1]] ?#查看子主題第一級

rootNode[[1]][[1]]? #查看子主題第一級的第一個(gè)Element

xmlSApply(rootNode,xmlValue) ?#查看所有Element的Value

XPath:

/nodeTop level node

//nodeNode at any level

node[@attr-name]Node with an attribute name

node[@attr-name='bob']Node with attribute name attr-name='bob'

Information from:http://www.stat.berkeley.edu/~statcur/Workshop2/Presentations/XML.pdf

xpathSApply(rootNode,"http://name",xmlValue)

xpathSApply(rootNode,"http://price",xmlValue)

fileUrl<-"http://espn.go.com/nfl/team/_/name/bal/baltimore-ravens"doc<-htmlTreeParse(fileUrl,useInternal=TRUE)scores<-xpathSApply(doc,"http://li[@class='score']",xmlValue)teams<-xpathSApply(doc,"http://li[@class='team-name']",xmlValue)scores


4. Reading JSON

library(jsonlite)

jsonData<fromJSON("https://api.github.com/users/jtleek/repos")

names(jsonData)

jsonData$name

names(jsonData$owner)

jsonData$owner$login

#Writing data frames to JSON

myjson<-toJSON(iris,pretty=TRUE)

cat(myjson)

#Convert back to JSON

iris2<-fromJSON(myjson)

head(iris2)

5. Data Table

library(data.table)

DF=data.frame(x=rnorm(9),y=rep(c("a","b","c"),each=3),z=rnorm(9))

head(DF,3)


DT=data.table(x=rnorm(9),y=rep(c("a","b","c"),each=3),z=rnorm(9))head(DT,3)

# See all data tables in Memory

tables()

# Subsetting rows

DT[2,]

DT[DT$y=="a",] ? #選出y=a的

DT[c(2,3)] ?#選出行12,列123

# Calculating values for variables with expressions

DT[,list(mean(x),sum(z))] ?#返回x的mean驾孔,z的sum兩個(gè)值

# Adding new columns

DT[,w:=z^2]

# 多重操作冷尉,tep意指中間變量

DT[,m:={tmp<-(x+z); log2(tmp+5)}]

# plyr like operations

DT[,a:=x>0] ?#增加一個(gè)變量 true false

DT[,b:=mean(x+w),by=a] ?#by語句

# Special Variable

.N ?An integer, length 1, containing the number of elements of a factor level

set.seed(123);

DT<-data.table(x=sample(letters[1:3],1E5,TRUE))

DT[, .N,by=x]

# Keys (重要)

DT<-data.table(x=rep(c("a","b","c"),each=100),y=rnorm(300))

setkey(DT,x)

DT['a']?

# Fread指令 Fast reading

big_df<-data.frame(x=rnorm(1E6),y=rnorm(1E6))

file<-tempfile()write.table(big_df,file=file,row.names=FALSE,col.names=TRUE,sep="\t",quote=FALSE)

system.time(fread(file))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末镀裤,一起剝皮案震驚了整個(gè)濱河市褐桌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聘裁,老刑警劉巖艺挪,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鸿染,居然都是意外死亡指蚜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門涨椒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摊鸡,“玉大人,你說我怎么就攤上這事蚕冬∶饣” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵囤热,是天一觀的道長猎提。 經(jīng)常有香客問我,道長旁蔼,這世上最難降的妖魔是什么忧侧? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮牌芋,結(jié)果婚禮上蚓炬,老公的妹妹穿的比我還像新娘。我一直安慰自己躺屁,他們只是感情好肯夏,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著犀暑,像睡著了一般驯击。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耐亏,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天徊都,我揣著相機(jī)與錄音,去河邊找鬼广辰。 笑死暇矫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的择吊。 我是一名探鬼主播李根,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼几睛!你這毒婦竟也來了房轿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎囱持,沒想到半個(gè)月后夯接,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纷妆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年钻蹬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凭需。...
    茶點(diǎn)故事閱讀 38,673評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡问欠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出粒蜈,到底是詐尸還是另有隱情顺献,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布枯怖,位于F島的核電站注整,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏度硝。R本人自食惡果不足惜肿轨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蕊程。 院中可真熱鬧椒袍,春花似錦、人聲如沸藻茂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辨赐。三九已至优俘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間掀序,已是汗流浹背帆焕。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留不恭,地道東北人叶雹。 一個(gè)月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像县袱,于是被迫代替她去往敵國和親浑娜。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容