1. 程式人生 > >Be Young,Be Curious,Then You'll be Lucky!

Be Young,Be Curious,Then You'll be Lucky!

一、 手動錄入資料

1. 建立空資料框

EmployeeData <- data.frame(gender=character(0),
                           educ=character(0),
                           jobcat=character(0),
                           salary=character(0),
                           salbegin=character(0),
                           jobtime=numeric(0),
prevexp=numeric(0), minority=numeric(0))

2. 在彈出的對話方塊編寫資料框

EmployeeData <- edit(EmployeeData)

二、 外部資料匯入

1. 與R關聯的資料夾

getwd()  #檢視預設路徑#
setwd("F:/Practice/R")  #設定預設路徑#

2.從txt文字檔案匯入資料

MyDataframe <- read.table("F:/Practice/data.txt"
, header = TRUE) #header是標題,TURE意思是引用標題#

除了 read.table外, 還有 read.csv, read.csv2, read.delim, read.delim2 等對 read.table 進行了按照檔案型別進行特別設定的函式可以使用:

read.csv: 以 “,” 分隔的 CSV 檔案, 預設第一行為表頭, 以 “.” 作為小數點.

read.csv2: 以 “;” 分隔的 CSV 檔案, 預設第一行為表頭, 以 “,” 作為小數點.

read.delim: 以 “\t” 分隔的 TSV 檔案, 預設第一行為表頭, 以 “.” 作為小數點.

read.delim2: 以 “\t” 分隔的 TSV 檔案, 預設第一行為表頭, 以 “,” 作為小數點.

read.fwf: 按照固定長度去讀取檔案.

3. 帶分隔符的文字檔案匯入

MyDataframe <- read.table("F:/Practice/hfda_ch09_employees.csv", header = TRUE, sep=",")  #sep是分隔符的意思#

4. 匯入excel資料

install.packages("RODBC") #下載資料包#
library(RODBC) #讀取資料包#

對於 Excel 檔案, 可以像連線資料庫一樣進行連線, 使用 RODBC 包 (限於 Windows).


#匯入excel -----start----#

channel <- odbcConnectExcel("F:/Practice/重複資料處理.xls") 
EmployeeData <- sqlFetch(channel, "重複資料") #讀取工作簿#
odbcClose(channel) #此時資料框仍為列表#
EmployeeData <- as.data.frame(EmployeeData) #把列表資料框轉化為矩陣資料框#

#匯入excel -----End----#
  • 如果提示RODBC不支援64位:點選R Studio選單上的Tools——Global
    Options——Gneral,選擇Reversion欄位右側的“Change”,切換成32位版本,可快速解決。 如果提示“Error
    in odbcTableExists(channel, sqtable) : ‘Sheet1’: table not found on
    channel”,檢查一下excel第一個sheet頁的名稱,如果不是Sheet1就改個名字。

5. 讀取剪下板資料

可以用read.table或read.csv,如果是CSV,那麼sep為\t。clipboard是剪下板的意思#

a <- read.table("clipboard", sep="\t")

6. 讀取網頁資料

install.packages("XML") #下載資料包#
library(XML) #讀取資料包#
zz <- readHTMLTable ("http://www.stats.gov.cn/Tjsj/zxfb/20140814_596079.html")

7. SPSS資料匯入

install.packages("foreign") #下載資料包#
library(foreign) #讀取資料包#
EmployeeData <- read.spss("Employeedata.sav")
EmployeeData <- as.data.frame(Employeedata)