R语言--输入输出
Posted One-Way
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言--输入输出相关的知识,希望对你有一定的参考价值。
基本输入输出
输入:
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)
以上是关于R语言--输入输出的主要内容,如果未能解决你的问题,请参考以下文章
片段(Java) | 机试题+算法思路+考点+代码解析 2023
C语言:让用 户输入 一个坐标值 (一共是8行8列),输出如下: 请高手修改代码,谢谢了
java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段