R语言数据接口
R语言数据接口
R语言处理的数据一般从外部导入,因此需要数据接口来读取各种格式化的数据
CSV
# 获得data是一个数据帧
data = read.csv("input.csv")
# 可以使用类似于SQL的where查询
retval = subset(data,dept == "IT" & salary > 600)
print(retval)
# 写入文件
# row.names=FALSE是为了去除额外的行号
write.csv(retval,"output.csv", row.names = FALSE)
Excel
安装xlsx时,要依赖rJava,和xlsxjars
在安装完之后要要建立和java的连接
sudo R CMD javareconf
配置完后在terminal中运行没有问题,但在Rgui和RStudio中均报错
dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
Reason: image not found
博主也尚未找到原因
因为Excel效果跟CSV一致,建议使用CSV
#需要在terminal中运行
library("xlsx")
data = read.xlsx("data.xlsx", sheetIndex = 1)
print(data)
Binary
二进制文件不能结构化存储,但不容易被查看,也是一种数据接口(虽然博主从没用过)
# 写入二进制文件
writeData = colnames(read.csv('input.csv'))
# 创建文件句柄
print(writeData)
writeFile = file('data.dat','wb')
# 写入文件
# 二进制文件只能写矢量对象
writeBin(writeData,writeFile)
close(writeFile)
# 读取二进制文件
readFile = file('data.dat','rb')
# 读取18个字节,内容解析为character否则默认转成数字
readData = readBin(readFile, character(), n = 18)
print(readData)
close(readFile)
[1] "id" "name" "salary" "start_date" "dept"
[1] "id" "name" "salary" "start_date" "dept"
XML
library(XML)
xmlToList('data.xml')[1:3]
xmlToDataFrame('data.xml')
$EMPLOYEE
$EMPLOYEE$ID
[1] "1"
$EMPLOYEE$NAME
[1] "Rick"
$EMPLOYEE$SALARY
[1] "623.3"
$EMPLOYEE$STARTDATE
[1] "1/1/2012"
$EMPLOYEE$DEPT
[1] "IT"
$EMPLOYEE
$EMPLOYEE$ID
[1] "2"
$EMPLOYEE$NAME
[1] "Dan"
$EMPLOYEE$SALARY
[1] "515.2"
$EMPLOYEE$STARTDATE
[1] "9/23/2013"
$EMPLOYEE$DEPT
[1] "Operations"
$EMPLOYEE
$EMPLOYEE$ID
[1] "3"
$EMPLOYEE$NAME
[1] "Michelle"
$EMPLOYEE$SALARY
[1] "611"
$EMPLOYEE$STARTDATE
[1] "11/15/2014"
$EMPLOYEE$DEPT
[1] "IT"
ID NAME SALARY STARTDATE DEPT
1 1 Rick 623.3 1/1/2012 IT
2 2 Dan 515.2 9/23/2013 Operations
3 3 Michelle 611 11/15/2014 IT
4 4 Ryan 729 5/11/2014 HR
5 5 Gary 843.25 3/27/2015 Finance
6 6 Nina 578 5/21/2013 IT
7 7 Simon 632.8 7/30/2013 Operations
8 8 Guru 722.5 6/17/2014 Finance
JSON
library(rjson)
result = fromJSON(file = 'data.json')
result #默认方法的JSON对象
as.data.frame(result) #转为数据帧
$ID
[1] "1" "2" "3" "4" "5" "6" "7" "8"
$Name
[1] "Rick" "Dan" "Michelle" "Ryan" "Gary" "Nina"
[7] "Simon" "Guru"
$Salary
[1] "623.3" "515.2" "611" "729" "843.25" "578" "632.8"
[8] "722.5"
$StartDate
[1] "1/1/2012" "9/23/2013" "11/15/2014" "5/11/2014" "3/27/2015"
[6] "5/21/2013" "7/30/2013" "6/17/2014"
$Dept
[1] "IT" "Operations" "IT" "HR" "Finance"
[6] "IT" "Operations" "Finance"
ID Name Salary StartDate Dept
1 1 Rick 623.3 1/1/2012 IT
2 2 Dan 515.2 9/23/2013 Operations
3 3 Michelle 611 11/15/2014 IT
4 4 Ryan 729 5/11/2014 HR
5 5 Gary 843.25 3/27/2015 Finance
6 6 Nina 578 5/21/2013 IT
7 7 Simon 632.8 7/30/2013 Operations
8 8 Guru 722.5 6/17/2014 Finance
Web数据
web中的数据就是要做网络爬虫了,这个以后单独讨论。
数据库
R语言可以连接数据库,连接方式与其他编程语言非常相似,下面以MySQL为例介绍
library(RMySQL)
# 建立数据库连接手柄
con = dbConnect(MySQL(),
user = 'user',
password = 'password',
dbname = 'dbname',
host = 'host'
)
# 解决中文编码问题
# 统一使用utf8
dbSendQuery(con, "SET NAMES utf8")
# 列出表格
dbListTables(con)
# 执行SQL,result接收数据入口
result = dbSendQuery(con, "select * from card")
df = fetch(result) #返回一个dataFrame
print(head(df))
card_ID card_name card_workplace card_type
1 CD01 张敏 浙江大学 教师
2 CD02 刘鹏飞 浙江大学 学生
3 CD03 李想 杭州电子科技大学 职工
4 CD04 李四 南京大学 学生
5 CD05 李楠 腾讯 社会人士、
6 CD09 张三 阿里巴巴 社会人士
小结
博主认为,数据接口的优点就是把采集数据和分析数据的过程解耦合,让每个模块处理擅长的问题。
R语言数据接口的更多相关文章
- R语言数据的导入与导出
1.R数据的保存与加载 可通过save()函数保存为.Rdata文件,通过load()函数将数据加载到R中. > a <- 1:10 > save(a,file='d://data/ ...
- R语言 数据重塑
R语言数据重塑 R语言中的数据重塑是关于改变数据被组织成行和列的方式. 大多数时间R语言中的数据处理是通过将输入数据作为数据帧来完成的. 很容易从数据帧的行和列中提取数据,但是在某些情况下,我们需要的 ...
- R语言数据预处理
R语言数据预处理 一.日期时间.字符串的处理 日期 Date: 日期类,年与日 POSIXct: 日期时间类,精确到秒,用数字表示 POSIXlt: 日期时间类,精确到秒,用列表表示 Sys.date ...
- 最棒的7种R语言数据可视化
最棒的7种R语言数据可视化 随着数据量不断增加,抛开可视化技术讲故事是不可能的.数据可视化是一门将数字转化为有用知识的艺术. R语言编程提供一套建立可视化和展现数据的内置函数和库,让你学习这门艺术.在 ...
- 美团 R 语言数据运营实战
一.引言 近年来,随着分布式数据处理技术的不断革新,Hive.Spark.Kylin.Impala.Presto 等工具不断推陈出新,对大数据集合的计算和存储成为现实,数据仓库/商业分析部门日益成为各 ...
- 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)
数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...
- 第五篇:R语言数据可视化之散点图
散点图简介 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本. 同时散点图中常常还会拟合一些直线,以用来表示某些模型. 绘制基本散点图 本例选用如下测试数据集: 绘制 ...
- 第四篇:R语言数据可视化之折线图、堆积图、堆积面积图
折线图简介 折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴. 但横轴也不一定是连续型变量,可以是有序的离散型变量. 绘制基本折线图 本例选用如下测试数据集: 绘制方法是首先 ...
- 第三篇:R语言数据可视化之条形图
条形图简介 数据可视化中,最常用的图非条形图莫属,它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.其中有两点要重点注意: 1. 条形图横轴上的数据是离散而非连续的.比如想展示两商品的价格 ...
随机推荐
- 使用Docker方式运行Mysql(MariaDB)
两者差不多.我使用的是MariaDB. 下面的docker命令,挂了数据,配置,映射了端口,指定了root密码,服务端编码. 蛮快的! docker run \ --name mariadb \ -v ...
- Json对象处理.将对象处理成dic数组.
var parser = new JsonConfigurationFileParser();var dict = parser.Parse("json"); using Newt ...
- .NET Core在安装(VS2015)与部署
.NET Core开发环境搭建 使用VS2015开发.NET Core项目,环境的搭建可以参考官网,大致安装步骤如下: 1.首先你得装个vs2015 并且保证已经升级至 update3及以上,下载链接 ...
- noi2016旷野大作战
玩了差不多两个小时61分 大概第9个点可以再拿5-6分 但是挺麻烦的并不想搞.. 这道题还是比较考验智商的??以及对那个特殊的ln函数的应用 感觉题目出的挺好的 看了题解 发现第4个点的确我应该想不到 ...
- sparkStreaming运行yarn,提交任务报错
op.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302) ...
- windows docker常用命令
关键词 示例 作用 attach sudo docker run -itd ubuntu:14.04 /bin/bash 进入容器 exec docker exec -it mysql bash 在容 ...
- Hive| 压缩| 存储| 调优
Hadoop压缩配置 修改Hadoop集群具有Snappy压缩方式: 查看hadoop支持的压缩方式 [kris@hadoop101 datas]$ hadoop checknative 将编译好的支 ...
- java读写excel文件( POI解析Excel)
package com.zhx.base.utils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi ...
- 安卓开发中SpannableString之富文本显示效果
SpannableString其实和String一样,都是一种字符串类型,SpannableString可以直接作为TextView的显示文本,不同的是SpannableString可以通过使用其方法 ...
- Uniform Generator
Computer simulations often require random numbers. One way to generate pseudo-random numbers is via ...