r语言 调用 c,R语言数据的输入和输出操作
数据的载入
R本身已经提供了超过50个数据集,而在众多功能包中,默认的数据集被存放在datasets程序包中,通过函数data()k可以查看系统提供所有的数据包,同时可以通过函数library()加载程序包中的数据。
矩阵型数据最常用的读取方式是read.table()具体的调用格式是()
read.table(file, header = FALSE, sep = "", quote = "\"'",dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),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, skipNul = FALSE)
file是要读的数据文件名称;header = TURE表示文件第一行变化变量名,sep = ""表示文件中的分割符为空格,dec = "."用来表示小数点的字符,
row.names, col.names,用来表示向量的行名与列名, na.strings = "NA"用来表示缺失值,skip = 0跳过前几行
读入数据后,可以通过简单的函数来查看数据的基本信息。mode(),names(),dim(), 且使用attach()函数,便可以直接通过变量名来获取变量中的信息,函数detach()用于执行相反的操作。
处理其他格式的软件
当数据量较少时,在EXCEL中复制好要用的数据然后导入到R中。
> data.excel = read.delim("clipboard")
> data.excel
X X1 X2 value
1 1 Be Be 1.00000000
2 2 B Be -0.20154586
3 3 Mg Be -0.31724811
4 4 Al Be -0.03359098
当数据量很多时,利用RODBC软件包(提供r和各类数据库的一个借口如access和SQL server等)所提供的方法便可以实现对Excel数据的直接访问~
读取来自网页的数据
在实际的应用中,从网站上直接获取数据也是非常常见的,例如国家统计局官方发布的权威统计数据,中国人民银行网站发布的经济数据或其他专业财经网站提供的股市、期货、债券数据都是进行宏观数据分析工作时常用的数据源。R读取网页中的HTML表格数据,需要用到XML程序包提供的readHTMLTable()函数。
readHTMLTable(doc, header = NA,
colClasses = NULL, skip.rows = integer(), trim = TRUE,
elFun = xmlValue, as.data.frame = TRUE, which = integer(),
...)
doc给出的是HTML文件或者网页地址,which是返回网页中的那几个表格,注意如果网址较长没在输入时需要换行,使用函数gsub将字符中的换行符删去。
baseURL = gsub("\\n", "", baseURL)
数据的保存
数据处理的结果或者中间结果应该被妥善保存,最基本的保存工作的函数为cat()函数。
cat(... , file = "", sep = " ", fill = FALSE, labels = NULL, append = FALSE)
参数file指定了输出的文件名,若文件已存在则原来的内容将被覆盖,若将参数append = T,则是在文件末尾追加内容。
> car = file("K:/car.txt")
> cat("Make lp100km mass.kg List.price", "\"Alpha Remeo\" 9.5 1242 38500", "\"Audi A3\" 8.8 1160 38700", file = car, sep = "\n")
> close(car)
更常用的写文件方式是把一个矩阵或者数据框以矩形块的形式整体写入文件,用write.table()函数
write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ", eol = "\n", na = "NA", dec = ".", row.names = TRUE,
col.names = TRUE, qmethod = c("escape", "double"), fileEncoding = "")
数据预处理
常用的数学函数
sum(x) 对x中的元素求加和,
prod(x)对x中的元素求乘积,
max(x)/min(x)求x中元素的最大值和最小值,
range(x)返回取值范围,相当于[min(x),max(x)],
length(x)返回x中元素的个数,
median(x)返回x中元素的中位数,
var(x)求x中元素的方差,
sd(x)求x中元素的标准差,
cov(x,y)求x和y的协方差,
cor(x,y)求x和y的相关系数,
round(x,n)对x中的元素四舍五入,保留小数点后的第n位,
sort(x)/order(x)排序,默认升序,
rev(x)对x中的元素取逆序,
unique(x)对x中重复的元素只取一个,
table(x)统计x中完全相同的数据个数。
修改数据标签
names()函数可以获取数据集的列标签,dimnames()[[1]]表示对行标签进行操作如:dimnames()[[1]][1:3] = c("1","2","3")将数据的取1-3行的标签改为1-3,dimnames()[[2]]表示列。
缺失值的处理
> air_data = airquality[1:7,1:4]
> is.na(air_data)
Ozone Solar.R Wind Temp
1 FALSE FALSE FALSE FALSE
2 FALSE FALSE FALSE FALSE
3 FALSE FALSE FALSE FALSE
4 FALSE FALSE FALSE FALSE
5 TRUE TRUE FALSE FALSE
6 FALSE TRUE FALSE FALSE
7 FALSE FALSE FALSE FALSE
> sum(is.na(air_data))
[1] 3
> complete.cases(air_data)
[1] TRUE TRUE TRUE TRUE FALSE FALSE TRUE
> complete.cases(air_data$Ozone)
[1] TRUE TRUE TRUE TRUE FALSE TRUE TRUE
is.na用来分析数据中是否含有缺失值,complete.cases则是判断每一行是否有缺失值,当数据量变大时,利用aggr()函数进行判断。
> air_data = airquality[1:31,1:4]
> aggr(air_data, las = 1, numbers = T)
图中的的小长条的长度表示各个变量的缺失数据的比例,可见wind和temp变量数据是完整的。
删除缺失样本
> data = air_data[complete.cases(air_data),]
> dim(data)
[1] 24 4
> data = na.omit(air_data)
> dim(data)
[1] 24 4
替换掉缺失值
用均值或者中位数去代替缺失值是通常的处理策略。
> air_data$Ozone[is.na(air_data$Ozone)] = median(air_data$Ozone[!is.na(air_data$Ozone)])
补充:R语言学习笔记--数据框输出和查看
(1)将数据框C输出为.csv文件
write.table(C,file="ABC.csv",sep = ",",row.names=FALSE)
#ABC.csv将保存在R的工作目录下,当不加sep = " "时,输出的数据会在同一个单元格里,因此要加“,”。
(2)查看数据框C的行数和列数
行数:length(C[1, ])
列数:length(C[ ,1])
行数+列数:dim(C)
(3)查看数据框C的变量名即列名
colnames(C)
(4)查看数据框C的变量x1中不同值的个数
length(unique(C$x1))
(5)在console里的不同的输出方式
print()
cat ( )
换行的话加“\n”
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
r语言 调用 c,R语言数据的输入和输出操作相关推荐
- Java如何跨语言调用Python/R训练的模型
在 如何使用sklearn进行在线实时预测(构建真实世界中可用的模型) 这篇文章中,我们使用 sklearn + flask 构建了一个实时预测的模型应用.无论是 sklearn 还是 flask,都 ...
- c语言中向计算机输入,C语言中字符数据的输入和输出
字符的输出 C语言中使用putchar函数来输出字符数据 #include int main() { char a,b,c,d; //定义字符变量a,b,c,d a = 'F'; b = 'U'; c ...
- C语言利用异或操作对数据进行加密和解密操作
C语言利用异或操作对数据进行加密和解密操作 C语言异或加密实现的原理为,将任意值,与相同值两次异或后,结果与原值相同.所以可以通过将源数据与一个固定的值(秘钥key)异或后,得到密文,然后将密文再次与 ...
- 第三课 数据的输入与输出
我们编程解题少不了与计算机进行信息交流,把已知数据输入计算机,让计算机把处 理结果等输出,这就是程序设计中数据的输入和输出.C++标准库提供了丰富的输入/输出 功能,本课讨论 C++编程中最基本和最常 ...
- scanf可不可以输入浮点型_数据的输入和输出
一.基本数据类型C 的基本数据类型有 short.int.long.char.float.double 等.类型多且杂,学习时极易厌烦,这时建议使用思维导图来整理这些繁杂但有章的知识.做思维导图时首先 ...
- 入职培训笔记记录--day2续(1、运算符 2、数据的输入与输出 3、控制语句)
再基础的东西也是要细心过一遍时间用的不多,但是还是有效果的. ---------------------------------------- 1.运算符 1.条件运算符(三目运算符): 表达式1 ? ...
- vb教材笔记_VB课堂笔记-----第五章 数据的输入与输出
第五章 数据的输入与输出(笔试2-4分) 需要掌握:3个方法.2个函数.1个语句 一.Print输出方法 格式: 对象名.Print 表达式-- 功能:输出表达式的结果(计算和输出) 注: 1)对象名 ...
- 闭着眼睛也要会打的【数据的输入和输出有几道练习题】---- HDU1089-1096
对于数据的输入和输出有几道练习题 HDU1089-1096 HDU1089 [google自动翻译,将就着看吧] 一个输入输出的实践(一) 问题描述 你的任务是计算A + B. 太容易了?!当然!我专 ...
- 回归预测 | MATLAB实现PSO-GCNN粒子群算法优化分组卷积神经网络的数据多输入单输出回归预测
回归预测 | MATLAB实现PSO-GCNN粒子群算法优化分组卷积神经网络的数据多输入单输出回归预测 目录 回归预测 | MATLAB实现PSO-GCNN粒子群算法优化分组卷积神经网络的数据多输入单 ...
最新文章
- mdpi的手机_【初印象】Android手机屏幕适配API:nodpi,xhdpi,hdpi,mdpi,ldpi
- python开源人脸识别库识别率达99_Python的开源人脸识别库:离线识别率高达99.38%...
- 【数据挖掘】数据挖掘算法 组件化思想 示例分析 ( 组件化思想 | Apriori 算法 | K-means 算法 | ID3 算法 )
- java curl json_POST请求发送json数据java HttpUrlConnection
- 创建SQL函数计算员工加班时间
- C#LeetCode刷题之#400-第N个数字(Nth Digit)
- jar注册成服务器,Spring Boot项目生成jar包,并在windows服务器中注册成服务,开机启动(示例代码)...
- linux运行bin not found,自己制作根文件后,程序-/bin/sh:XXX:not found错误
- asp.net: 应用母版页的页面,如何设置其标题?
- Linux 安装MongoDB 并设置防火墙,使用远程客户端访问
- 西门子300硬件升级包下载_「西门子1200PLC教程」19.S7-1200入门实例
- PLC基本指令系统优势
- Python 开发 利用SQLmap API接口进行批量的SQL注入检测.(SRC挖掘)
- access查找出生日期年份_Access时间日期比较查询的方法总结
- gwas snp 和_【交流】关于SNP与GWAS(Genome Wide Association study)的一些想法
- 导出excel换行问题,一个单元格多张图片问题,数组对象去重处理,计算属性传参
- 复习汇总vue知识点
- 软件企业具体可享受哪些所得税优惠政策?
- NETDMIS5.0笛卡尔坐标系和矢量2023
- sql中的date的使用
热门文章
- 计算器html js php代码,JavaScript计算器网页版实现代码分享
- LeetCode 845. 数组中的最长山脉
- CentOS 7.7 安装cmake3
- AI提高药物发现效率 | ML,Supercomputers and Big Data
- Matplotlib 放置legend(bbox_to_anchor)
- css less 不要作用到子对象_不要盲目的在项目中使用LESS CSS
- variant 字符串数组_VB数组部分核心知识总结
- 宏基因组合种华山松、云杉专车3天领证
- “我付了钱,为何要说谢谢?”
- R语言ggplot2可视化:自定义函数在箱图(boxplot)上添加分组样本个数(count)、分组均值(mean)、箱体填充色自定义、数据标签色彩自定义