R語言的輸入

R,作爲一個非常靈活的平臺,是專用於探索、展示和理解數據的語言,一種爲統計計算和繪圖而生的語言和環境,也是統計、預測分析和數據可視化的全球通用語言,它提供各種用於分析和理解數據的方法,從最基礎的到最前沿的,無所不包。

1、包

包是R函數、數據、預編譯代碼以一種定義完善的格式組成的集合。計算機上存儲包的目錄
稱爲庫(library)。函數.libPaths()能夠顯示庫所在的位置, 函數library()則可以顯示庫中
有哪些包。
R自帶了一系列默認包(包括base、datasets、utils、grDevices、graphics、stats
以及methods),它們提供了種類繁多的默認函數和數據集。其他包可通過下載來進行安裝。安裝
好以後,它們必須被載入到會話中才能使用。命令search()可以告訴你哪些包已加載並可使用。

下載安裝包:install.packages()   。例如,包gclus中提供了創
建增強型散點圖的函數。可以使用命令install.packages("gclus")來下載和安裝它。

查看包:installed.packages()

載入包:library()

更新包:update.packages()

演示示例:help(package="package_name")    載入一個包之後,就可以使用一系列新的函數和數據集了。包中往往提供了演示性的小型數據集和示例代碼,能夠讓我們嘗試這些新功能。幫助系統包含了每個函數的一個描述(同時帶有
示例),每個數據集的信息也被包括其中。

2、包的示例實踐

任務描述:

(1) 打開幫助文檔首頁,並查閱其中的“Introduction to R”。
(2) 安裝vcd包(一個用於可視化類別數據的包)。
(3) 列出此包中可用的函數和數據集。
(4) 載入這個包並閱讀數據集Arthritis的描述。
(5) 顯示數據集Arthritis的內容(直接輸入一個對象的名稱將列出它的內容)。
(6) 運行數據集Arthritis自帶的示例。如果不理解輸出結果,也不要擔心。它基本上顯示
了接受治療的關節炎患者較接受安慰劑的患者在病情上有了更多改善。
(7) 退出。

代碼清單:

help.start()
install.package("vcd")
help(package="vcd")
library(vcd)
help(Arthritis)
Arthritis
example(Arthritis)
q()

3、輸入

可供R輸入的數據源

3.1 鍵盤輸入(使用小數據集)

> my<-data.frame(name=character(0),age=numeric(0),weight=numeric(0)) ##numeric(0)的賦值語句將創建一個指定模式但不含實際數據的變量
>my<-edit(my)  ##調出數據編輯器
>my ##查看
>my<-edit(my) ##再次編輯,相當於fix(my)
>edit(my) ##輸出查看且再次編輯

3.2 從帶分隔符的文本文件導入數據

my<-read.table(file,header=TRUE/FALSE,sep=","/"\t",row.names="name")
##file是一個帶分隔符的ASCII文本文件,header是一個表明首行是否包含了變量名的邏
輯值(TRUE或FALSE),sep用來指定分隔數據的分隔符,row.names是一個可選參數,用以指
定一個或多個表示行標識符的變量。
read.table(file, header = FALSE, sep = "", quote = "\"'",
           dec = ".", row.names, col.names,
           as.is = !stringsAsFactors,
           na.strings = "NA", colClasses = NA, nrows = -1,
           skip = 0, check.names = TRUE, fill = !blank.lines.skip,
           strip.white = FALSE, blank.lines.skip = TRUE,
           comment.char = "#",
           allowEscapes = FALSE, flush = FALSE,
           stringsAsFactors = default.stringsAsFactors(),
           fileEncoding = "", encoding = "unknown", text)
file 要處理的文件。可以用字符串指定文件名,也可以使用函數,如:file('file.dat',encoding='utf-8')
header 首行是否爲字段名。如果不指定,read.table()會根據行標籤進行判斷,即如果首行比下面的行少一列,就是header行
col.names 如果指定,則用指定的名稱替代首行中的列名稱
sep 指定分隔符。默認爲空白符(空格,製表符,換行符等)。可以指定爲' ', '\t'等
quote 指定字符串分隔符,如" 或 '
na.strings 指定缺損值。默認爲NA
fill  文件中是否忽略了行尾字段。如果有,必須指定爲 TRUE
strip.white 是否去除字符串字段首尾的空白
blank.lines.skip 是否忽略空白行,默認爲TRUE。如果要指定爲FALSE,需要同時指定 fill = TRUE 纔有效
colClasses 指定每個列的數據類型
comment.char 註釋符。默認使用#作爲註釋符號,如果文件中沒有註釋,指定comment.char = "" 會比較安全 (也可能讓速度比較快)

 

3.3 導入Excel數據

讀取一個Excel文件的最好方式,就是在Excel中將其導出爲一個逗號分隔文件(csv),並使用前文描述的方式將其導入R中。在Windows系統中,你也可以使用RODBC包來訪問Excel文件。電子表格的第一行應當包含變量/列的名稱,,所以要先下載並安裝RODBC包。

library(xlsx)
work<-"d:/file.xlsx")
myframe<-read.csv(work,1) ##讀取第一個工作表 read.xlsx出錯

3.4 導入XML數據

以XML格式編碼的數據正在逐漸增多。R中有若干用於處理XML文件的包。例如,由DuncanTemple Lang編寫的XML包允許用戶讀取、寫入和操作XML文件。XML格式本身已經超出了本書的範圍。對使用R存取XML文檔感興趣的讀者可以參閱www.omegahat.org/RSXML,從中可以找到若干份優秀的軟件包文檔。

3.5 導入SPSS數據

SPSS數據集可以通過foreign包中的函數read.spss()導入到R中,也可以使用Hmisc包中的spss.get()函數。函數spss.get()是對read. spss()的一個封裝,它可以爲你自動設置後者的許多參數,讓整個轉換過程更加簡單一致,最後得到數據分析人員所期望的結果。首先,下載並安裝Hmisc包(foreign包已被默認安裝)

install.packages("Hmisc")
library(Hmisc)
myframe<-spss.get("my.sav",use.value.labels=TRUE/FALSE)
##,use.value.labels=TRUE表示讓函數將帶有值標籤的變量導入爲R中水平對應相同的因子,myframe是導入後的R數據框

3.6 讀取網頁表格


如果是想抓去網頁上的某個表格,那麼可以使用XML包中的readHTMLTable()函數。例如我們想獲得google統計的訪問最多的1000名網站數據,則可以象下面這樣做。關於這個函數可以參考這篇博文。
url <- 'http://www.google.com/adplanner/static/top1000/'
data <- readHTMLTable(url)
names(data)
head(data[[2]])

3.7 與數據庫連接取數

library(RMySQL)
connectMySQL<-function(mysql,dbname,user,password,host){
  drv<-dbDriver(mysql)
  return(dbConnect(drv,dbname,user,password,host))
}
connect <- function()
{
  con <- connectMySQL(mysql = "MySQL", dbname = "test", user = "***", password = "A", host = "10.***")
  return(con)
}


con=connect()
news=dbGetQuery(con,"select news_content from news_cms where substr(news_time,1,10)='2018-08-20';")
查看數據集DA:
#注意要改爲符號 /
DA<-read.csv("C:/Users/Administrator/Desktop/西瓜.csv",fill=TRUE,header=TRUE) 

head(DA)             # 前6行
head(DA,n=5)         # 前5行
DA                   # 查看全部
DA[1] 或 [['列名']]   #查看列
DA[1,]               #查看行
DA[1:3,]             # 前3行
tail(DA)             # 後6行

想要了解輸出,請聽下回講解 《(*^▽^*)》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章