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语言数据接口的更多相关文章

  1. R语言数据的导入与导出

    1.R数据的保存与加载 可通过save()函数保存为.Rdata文件,通过load()函数将数据加载到R中. > a <- 1:10 > save(a,file='d://data/ ...

  2. R语言 数据重塑

    R语言数据重塑 R语言中的数据重塑是关于改变数据被组织成行和列的方式. 大多数时间R语言中的数据处理是通过将输入数据作为数据帧来完成的. 很容易从数据帧的行和列中提取数据,但是在某些情况下,我们需要的 ...

  3. R语言数据预处理

    R语言数据预处理 一.日期时间.字符串的处理 日期 Date: 日期类,年与日 POSIXct: 日期时间类,精确到秒,用数字表示 POSIXlt: 日期时间类,精确到秒,用列表表示 Sys.date ...

  4. 最棒的7种R语言数据可视化

    最棒的7种R语言数据可视化 随着数据量不断增加,抛开可视化技术讲故事是不可能的.数据可视化是一门将数字转化为有用知识的艺术. R语言编程提供一套建立可视化和展现数据的内置函数和库,让你学习这门艺术.在 ...

  5. 美团 R 语言数据运营实战

    一.引言 近年来,随着分布式数据处理技术的不断革新,Hive.Spark.Kylin.Impala.Presto 等工具不断推陈出新,对大数据集合的计算和存储成为现实,数据仓库/商业分析部门日益成为各 ...

  6. 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)

    数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...

  7. 第五篇:R语言数据可视化之散点图

    散点图简介 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本. 同时散点图中常常还会拟合一些直线,以用来表示某些模型. 绘制基本散点图 本例选用如下测试数据集: 绘制 ...

  8. 第四篇:R语言数据可视化之折线图、堆积图、堆积面积图

    折线图简介 折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴. 但横轴也不一定是连续型变量,可以是有序的离散型变量. 绘制基本折线图 本例选用如下测试数据集: 绘制方法是首先 ...

  9. 第三篇:R语言数据可视化之条形图

    条形图简介 数据可视化中,最常用的图非条形图莫属,它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.其中有两点要重点注意: 1. 条形图横轴上的数据是离散而非连续的.比如想展示两商品的价格 ...

随机推荐

  1. 通过CSS自动截取字符串长度

      Table Tr TD的自动换行 <style type="text/css"> table { width: 30em; table-layout: fixed; ...

  2. 关于sql和MySQL的语句执行顺序

    sql和mysql执行顺序,发现内部机制是一样的.最大区别是在别名的引用上. 一.sql执行顺序 (1) from (3) join (2) on (4) where (5) group by(开始使 ...

  3. 牛客挑战赛30 小G砍树 树形dp

    小G砍树 dfs两次, dp出每个点作为最后一个点的方案数. #include<bits/stdc++.h> #define LL long long #define fi first # ...

  4. svn创建分支(branch/tag)出现“path”already exists

    不用在visual svn中创建相应的目录,svn会自己创建目录,但是自己必须指定该目录名称. 比如:

  5. L3-001 凑零钱 (30 分) dfs加后缀剪枝

    韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债.韩梅梅手边有 1 枚来自各个星球的硬币,需要请你帮她盘算一下,是 ...

  6. Kafka-API

    ctrl+Hnew 它的实现类ctrl+r替换格式化ctrl+alt+l ctrl+fctrl+alt+v 替换 &lt " &lt < &gt > Ka ...

  7. day 55 jQuery-part2

    这里有一个DOM对象转换成jQuery对象的方法,在jQuery对象后面加上索引值0即可得到效果如图所示: $("#btn")[0] 这里我们这里的索引值为0 只是一种写法而已,只 ...

  8. fastadmin默认的controller已实现的方法

    fastadmin控制器 <?php namespace app\admin\controller\peizi; use app\common\controller\Backend; /** * ...

  9. fastAdmin进阶

    基本知识流程一栏链接 bootstrapTable fastadmin系统配置(符内置规则): fastadmin默认的controller已实现的方法 一张图解析fastadmin的表格: fast ...

  10. springmvc接受前端的参数封装成对象

    前端如果传过来的是json格式的字符串,后台参数需要加@RequestBody注解. 前端如果传过来的是json对象,后台不参数需要加@RequestBody注解. $.POST({ url: url ...