基本輸入輸出
輸入:
readline, edit, fix
輸出:
print, cat
輸出重定向
sink
#基本輸入輸出
x=readline('請輸入:') #讀取輸入,一行為一個字符串
x #[1] "1 2 3"
mydata=data.frame(name=character(0),age=numeric(0),height=numeric(0)) #通過 character(0)定義域類型
mydata=edit(mydata) #通過edit直接修改
mydata
mydata2=data.frame() #創建一個空的data.frame
mydata2=edit(mydata2)
mydata2
fix(mydata2) #通過fix直接修改
mydata2
#輸出 print cat
x=rnorm(10,100,2)
print(x) #print輸出結尾有換行,行開頭有元素位置提示
cat(x) #cat輸出沒有換行,順序排列
print(x,digits = 4) #有效位
print ('hello world 1 ') ;print('welcome to R ')
cat('hello world 1 ') ;cat('welcome to R ')
cat(format(x,digits=3),'\n') #通過format指定有效位
cat ('hello world',file='d:/app.log')
#重定向 sink
sink('output.txt',append = T) #追加方式重定向
print('hello world')
sink() #使用完畢需要sink()
sink('d:/output.txt')
cat('hello world \n')
cat(x,'\n')
sink()
x=rnorm(10)
x
print(x,digits=2)
getOption('digits') #獲取digits選項信息 默認為7
options(digits = 7) #修改選項信息
x
模擬數據和數據集
#模擬數據和數據集 #任意分布 # y=a*x+b+e # x~N(0,2) # e~N(0,1) # b=0.5 , a=2 set.seed(10) #隨機種子 從指定相同的隨機種子開始,後續產生的隨機數的結果是一樣的 x=rnorm(100,0,2) e=rnorm(100) y=2*x +0.5 + e plot(x,y) #生成隨機數 (x=rbinom(5,100,0.7)) (x=rbinom(5,100,0.7)) set.seed(10) (x=rbinom(5,100,0.7)) (x=rbinom(5,100,0.7)) data(package='datasets') # data() # #查看系統所有包中的數據集 data(package=.packages(all.available = T)) library(arules) #加載包 data(Groceries) #查詢數據集
文件數據源
文本文件:
read.table, read.csv, read.delim
excel文件:
多種方式
SPSS文件:
foreign::read.spss, Hmisc::spss.get
#文件數據源
getwd() #獲取當前工作路徑
setwd('e:/') #修改當前工作路徑
x=rnorm(1000,10,2)
y=rnorm(1000,10,2)
z=rnorm(1000,10,2)
save(x,y,z,file='xyz.Rdata') #save保存文件,同時保存變量信息
l=load('xyz.Rdata') #load加載文件,加載變量信息
x=read.table('scan0.txt',header=T,sep=' ',comment.char = '@') #讀取文本文件
x
str(x)
x=read.csv('scan0.txt',header=F,comment.char = '@',sep=' ') #讀取csv文件
str(x)
x=read.delim('scan.txt',header=F,sep=' ')
x=read.delim('clipboard',header=F) #讀取剪切板信息
x=scan('scan.txt',what=list(date="",pv=0,uv=0),sep=",") #what指定數據類型 通過list指定列表名及數據類型
x=as.data.frame(x)
write.table(x,'scan2.txt',sep=',',quote=F,col.names = T,row.names=F) #寫文件
#Excel文件
# 1、csv文件
# 2、剪貼板+read.delim
# 3、xlsx擴展包
# 4、rodbc數據源
library(foreign)
cars=read.spss('car_sales.sav')
library(Hmisc)
cust=spss.get('car_sales.sav',use.value.labels = T)
cust
關系型數據庫Mysql
odbc, rMysql
#RMySQL
install.packages('RMySQL')
library(RMySQL)
conn = dbConnect(MySQL(),dbname='rtest',username='rtest',password='rtest',host="192.168.1.100",port=3306)
dbListTables(conn)
dbListFields(conn,'t_user')
summary(MySQL(),verbose=T)
users=dbReadTable(conn,'t_user')
str(users)
users
tmpUser=data.frame( name=paste('user',1:100,sep=''),
age=rnorm(100,50,5))
tmpUser
dbWriteTable(conn,'t_user',tmpUser,append=T,row.names=FALSE)
dbWriteTable(conn,'t_stu',tmpUser,append=T)
dbReadTable(conn,'t_stu')
res=dbGetQuery(conn,'select * from t_user where age>10')
res
res=dbSendQuery(conn,'show databases') #記錄及類型
dl=fetch(res)
dl
dbDisconnect(conn)
#RODBC
install.packages('RODBC')
library(RODBC)
conn=odbcConnect("mysqlodbc")
conn=odbcConnect("mysqlodbc", uid="rtest", pwd='rtest')
sqlTables(conn)
users=sqlFetch(conn,'t_user')
users
str(users)
users=sqlQuery(conn,'select * from t_user where age>15')
users
odbcClose(conn)