中企动力 > 商学院 > r导入excel数据
  • ?

    怎样把复杂的数据变简单?用R语言做主成分分析呗

    火玫瑰

    展开

    作者:麦子

    当我们做完基因、RNA等芯片之后通常会拿到一组特别恐怖的数据,几百个基因几×几十个样本,这时候我想看这些基因的表达差异是否影响到样本的分布。可是有这么多基因,它们各自肯定都有影响,一个个看是不是很不现实。

    比如这个样子,甲基化芯片检测了416个位点的甲基化程度,看不同样本间是否有差异。一共132个样本,分两组。

    这当然只展示了一很小的部分。

    每个样本由416个位点来描述,也就是416个变量,或叫416个维度。咱们生活的空间是3维的啊,如果要精确描述这132个样本的位置,就是建一个416维的空间把它们定位,这是很不现实的。所以要对它进行降维处理之后再观察。

    主成分分析(PCA)就是常用的一种降维方法,提取出这么多变量中对样本影响最大的成分。但它不是挑选出某几个变量,而是根据它们的方差贡献,经过线性变换,得到新的变量,即“主成分”。

    但再仔细观察,你会发现这表格的坑相当多,从代测公司拿回来就这样。我拉开展示变量名称的那几列,都只是在用不同的参数描述一个样本!

    小数点前面是样本编号;小数点后面的Signal A是非甲基化等位基因密度(U),Signal B是甲基化等位基因密度(M),Beta值即甲基化水平值,Beta = M / (M+U+100),而Intensity就是Signal A + Signal B。

    况且,它这样样本为行甲基化位点为列,做出来的PCA其实反应的是样本对不同位点甲基化水平的影响,这跟我们的研究目的是相反的,所以要把它倒过来。

    你再仔细找找说不定还有缺失值,也有可能等你做了一半才发现,这都是惨淡的现实。

    你已经能想到处理它要有多头痛了。不仅要提取每个样本的beta值那一列,还要把它的行和列翻转过来^0.0^我知道大家毕竟医学出身,对R语言代码有点怵,但如果表格简单一点、规模小一点,用SPSS也可以简单完成,但面对如此严酷的事实,咱们还是硬着头皮敲代码吧。其实做下来也不是那么难。

    数据预处理

    先检查一下缺失值,还都是beta值(唉我是做到一半才发现的,不得不倒回来处理)。在Excel中打开表格,全选,Ctrl+G,在弹出的对话框中点定位条件,查找空值:

    确定之后会自动选中缺失值的单元格,我们随便填个颜色标注出来。处理缺失值的一般方法,可以删除那个样本,或者以均值或中值填充。但既然在本案例中我们知道它的含义,而且有条件算出来,那我还是计算一下吧。

    找到一个填了颜色的空值,在其中按Excel格式输入公式,使其符合beta值的计算方法,比如D82的空值就应该输入“=F82/(E82+F82+100)”,然后选中该单元格并Ctrl+C,保持它被选中有虚线围绕的状态。

    然后再做一次找空值的操作,这回可以全选表格来查找,也可以只选中有数据的表格(因为后面有几列是跟PCA无关的内容)。找到空值之后Ctrl+V,就把刚才的公式填上了。这样就可以导入RStudio。

    下面,书写的格式,就按R中的习惯吧,“##”后面的文字是大步骤,“#”后面的文字是对上一行代码的注释

    ## 准备工作环境

    rm(list = ls)

    # 把工作空间先清理干净

    setwd("D:/PCA")

    # 设置工作目录

    library(pca3d)

    library(rgl)

    library(readxl)

    # 载入以上这些R包。如果你还没安装,就先用install.packages(‘包的名称’)装上,再运行library。装包的时候好像要翻墙,其他时候不用。

    Raw<- read_excel("Raw.xlsx", sheet = "Tissues")

    #用read_excel函数读取原Excel文件,并把它命名为Raw。其实也可以从菜单“File→Import Dataset→From Excel”导入,反正也是调用这个函数。随意啦。

    这样就可以在Environment选项卡中看到这个超大的表格。以后操作过程中可以随时观察这个选项卡中添加了哪些元素。

    ## 提取所需数据

    num<- seq(from = 4, to = 663, by = 5)

    # 定义我们需要的大表格中列的编号。回去观察那个大表,第一个样本的beta值在第4列,所有芯片数据的最后一列是第663列,是个Intensity,from和to就是选定这个范围。我们需要的是beta值,每隔5列出现一个,所以by=5。同理,如果我们需要的是single_A,那么from=5。

    Data<- Raw[,num]

    # 把从大表格中提取出来的小表格命名为Data。后面的[,num]就是刚才挑选的列号了。

    DataRev<- t(Data)

    # 把小表格的行和列翻转过来,形成一个新的表,命名为DataRev。可以在Environment中可以点击各表查看效果。

    Group<- c(rep('Ca',66), rep('NA',66))

    # 因为患者的个体编号和分组编号混起来了,所以我们要另外添加一列Group,表示分组。这是定义Group的内容,66个Ca(癌组织)和66个NA(癌旁组织)。

    DataRevG<- data.frame(DataRev, Group = Group)

    # 把上面的Group添加到DataRev表中,形成的新表命名为DataRevG。

    到这里,准备工作才做完。

    PCA运算及绘图

    ## 主成分分析

    DataRevG_sub<- subset(DataRevG, select = -Group)

    # 因为PCA是不需要Group那列的,那是为将来绘图准备的,所以要建一个子表,把那列减去,命名为新表,原名加上后缀_sub。

    DataRevG.pca<- prcomp(DataRevG_sub, scale. = TRUE)

    #用prcomp函数对那个子表做分析,并把结果拎出来,命名为DataRevG.pca的一个大集合。

    Pca.sum<- summary(DataRevG.pca)

    #对PCA结果做描述性分析,命名为pca.sum。可以从这里查看分析的各项结果。

    Importance<- data.frame(Pca.sum$importance)

    # 提取pca.sum中的Importance,独立出来成为一个叫Importance的新数据框,它展示的是主成分的重要度。其实不提取也可以,但提出来是为了方便观察。点开它可以看到,它分为标准差、方差贡献率、累积贡献率三行。我们主要看累积贡献率。

    PC1是第一个主成分(Principal Component),它的贡献率是30.51%,PC2贡献了8.95%,两者累积39.46%,依此累推。这就决定我们选取几个主成分来观察样本。一般来说,选取累积贡献率达到80%-90%的前几个,有时候2个就满足了,可以做个二维图,不行就三维。

    但本例中有点意外,前3个PC贡献率并没有那么高,说明影响较大的主成分比较多。这时可以画个碎石图来观察主成分的分布规律。

    screeplot(DataRevG.pca, type = 'line', lwd = 2)

    # 画碎石图,type就是碎石图的类型,lwd是线宽。

    这样看来,第三个主成分之后,方差贡献趋于平缓,那我们还是选取前三个来作图分析。

    ## 作图

    open3d

    # 打开3D图形窗口。

    par3d(windowRect = c(100, 100, 612, 612))

    # 重设窗口大小。

    pca3d(DataRevG.pca, components = 1:3, group = DataRevG$Group, col = c('Ca' = 'light blue', 'NA' = 'yellow'), show.axes = T, show.axe.titles = F, shape = 'sphere', show.plane = F)

    # 画散点图。Componets选第1-3个,group则按DataRevG中的Group这一列来分,col是分别给每组的样本选个颜色,show.axes是显示坐标轴,T是指True,即显示,后面的是坐标轴名,F自然就是False不显示了。这些都可根据自己的喜好设置,更详细的参数可以在RStudio的Help中搜索函数名pca3d来查看。

    axes3d(edges = 'bbox', labels = T, box = F)

    # 给图加个带坐标的边框。

    legend3d("topright", legend = c('Ca','NA'), col = c('light blue','yellow'), pch = 16, cex = 1, inset = c(0.02))

    # 加上图例。注意颜色和组名的顺序要跟上面作图时一致。

    好了,终于可以看效果了:

    在这个小窗口里,3D图是可以旋转的。找到个好角度,就可以截图下来了。截图,当然不是用日常工具了~用下面这个函数,截成期刊需要的格式:

    rgl.postscript('Example.eps', fmt = 'eps', drawText = T)

    # 这是截成eps格式。另外也支持ps、tex、pdf、svg、pgf这些优质图片的格式。就是截出来的矢量图文件有点大。

    就这样做好了。

  • ?

    R语言、Excel哪个更能胜任数据分析?

    陶静芙

    展开

    我从事数据分析工作已经有十年之久。最初是出于工作需要,我的经理丢给我一堆数据,我需要处理这些数据。当时我一直使用的工具是 Excel,因为这是我熟练掌握的一款工具。

    三年前,我开始接触到 R,一开始因为功能太多而坚决抵制使用。后来我开始琢磨如何使用。现在我基本不怎么使用 Excel 了。这只是我个人的观点,但是如果你要分析数据,R 更胜任这项任务。下面来说说为什么 R 更适合数据分析。

    这两款工具的使用方法截然不同。使用 Excel 时,可以通过鼠标点击完成大部分工作,你可以访问界面内不同位置的各种工具。因此 Excel 非常便于使用(熟能生巧),但是用 Excel 处理数据非常费时,而且如果接手一个新项目,你必须单调地重复这些流程。使用 R 时,则通过代码完成所有操作。你把数据载入内存,然后运行脚本来研究并处理数据。这个工具可能不够人性化,但是有以下几点好处。

    我认为,从概念上来说,R 更便于使用。如果你在处理多列数据,虽然你只是在处理单个任务,但是却会看到所有的数据。而使用 R 时,数据都在内存中,只有调出数据才能看到。如果你在转换或计算,你会处理相关列或行的子集,其他所有数据都在后台。我觉得这样更便于关注手头的任务。完成任务后,可将其保存在某个数据帧中,其中只包含所需的列或行数据。你建立了正确的数据集,可解决当前的问题。这样做看似无关紧要,但实际上大受裨益。

    借助 R,就可以对其他数据集轻松重复相同的操作。因为所有数据都是通过代码进行处理和研究,因此对新的数据集执行相同的操作也就轻而易举了。使用 Excel 时,大多数操作都是通过鼠标点击实现,虽然用户体验不错,但对新的数据重复操作却非常费时而枯燥。而 R 只需载入新的数据集,然后再次运行脚本即可。

    实际上,用代码操作也便于诊断并共享你的分析结果。使用 Excel 时,大多数的分析结果都基于内存(数据透视表在这里,公式编辑器在另一个表格上等)。而在 R 中,通过代码执行所有操作,一目了然。

    如果你在修正一个错误,你很清楚在哪里操作,而如果你需要共享分析结果,只需复制粘贴代码即可。在线查找帮助时,你能准确说明所用数据,并提出具体的问题。事实上,大多数时候,你在线提问时,人们都是直接贴出准确的代码,来解决你的问题。

    R 中的项目组织更简单。在 Excel 中,我要准备一系列表格,可能还要准备多个工作簿,然后适当命名,而且各文件名不得重复。我的项目备注分别保存在各个文件中。我的R语言项目组织单独设有一个文件夹,我处理过的所有内容都放在其中。清理数据、探索性图表及模型。这样便于我理解和查找,也为与我一起工作的其他人提供方便。当然,Excel 也能做到井井有条。我觉得 R 的简洁性更便于使用。

    上述几点只能说是锦上添花,而并不是必不可少。在没有这些功能之前,我也用了好几年 Excel,你应该也一样。现在,我想讲讲 R 和 Excel 真正的区别。我想说的是,除了以上那些花哨的小优势之外,R 更适合用于数据分析。原因如下。

    你可以把任何数据载入 R。数据的保存位置或保存形式并不重要。你可以载入 CSV 文件,也可以读取 JSON,或者执行 SQL 查询,抑或提取网站。你甚至还可以在 R 中通过 Hadoop 处理大数据。

    R 是一个完整的工具集,使用的是数据包。在分析数据时,R 比 Excel 更实用。你可使用 R 执行数据管理、分类和回归,也可以处理图片,并执行其他所有操作。如果机器学习是你的专业,那能想到的任何算法都是小菜一碟。目前,R 可用的数据包逾 5,000 个,因此无论你要处理什么类型的数据,R 都能应付自如。

    R 的数据可视化效果非常卓越。说句实话,Excel 的图表非常出色,简单易懂。但 R 的效果更好。

    我觉得这是 R 最实用的功能之一。借助 ggplot2,你可以快速创建所需的各种图表,并根据图表形状自行调整。在你熟悉了如何用 ggplot2 创建一个图表后,任何其他图表都不在话下。ggplot2 还能制作更多类型的图表。你能用 Excel 创建 散点图矩阵吗?用 R 就能轻松创建这种矩阵,CDF plot 也是如此。Excel 棋差一招。

    Git 版本控制。我一向习惯保存多个版本的分析结果。Git 是至今为止我找到的最好用的工具。 用 RStudio 作为编辑器,其支持项目。创建一个项目仓库,然后你就能跟踪数据研究的不同版本。你可以创建不同版本的 Excel 文件,但是这些保存的二进制文件无法显示相互之间的更改部分。

    而 R 非常简单。 我已经说了很多理由。总之,Excel 是一款不错的数据分析工具。我相信它能不负众望完成所有任务。但是,如果你只有这一款工具,则会大大影响你的工作效率。相比之下,R 更好用,而且提供的工具集模块更完整。而缺点在于不是非常易于上手,用户一开始相对要花很多时间学习使用。

    如果坚持下去,就会有所收获,不仅对数据更了解,还提高了自己的能力。

    每个人的使用习惯不同,对数据分析来说不管是R语言还是Excel只要能高效运用在工作当中,都是好工具。

    End.

    来源:网络大数据

    ps:大家可以在评论区留言,一起讨论下你更喜欢R还是Excel,并说一下为什么!也可以讲讲在日常工作中工具的使用问题,小编会请专业的老师一一为大家解答的!

  • ?

    专题一 R语言编程从入门到实战—第1章(3) 数据导入

    水中月

    展开

    工作目录

    获取当前工作目录getwd( )

    改变当前工作目录

    setwd("C:UsersDocuments")

    #注:R中斜杠为右斜杠

    CSV文件导入

    Data<-read.csv("mydata.csv",head=TRUE)

    #head=TRUE/FALSE,表示文件第一行是否包含变量的名称;如果缺少,该值会依据文件格式自动确定

    TXT文件导入

    Data<-read.table("mydata.txt",sep="delimiter")

    #sep为文件分隔符的类型,默认为sep=" "

    EXCEL文件导入

    #如果EXCEL工作簿中只有一个工作表,推荐导成csv文件导入

    .xlsx文件

    install.packages("xlsx")#安装需要的包

    library(xlsx)#载入需要的包

    Data<-read.xlsx("mydata.xlsx",n)#n表示获取工作簿中的第n个工作表

    #可以使用?read.xlsx来获取更多的帮助文件,了解更多read.xlsx()的功能

    .xls文件

    install.packages("RODBC")

    library(RODBC)

    Databook<-odbcConnectExcel("mydata.xls")#获取Excel的工作簿

    Datasheet<-sqlFetch(Data,"sheet1")#获取工作簿里面具体的表格

    odbcClose(Databook)

    从网页抓取数据

    其中一种基本思路是使用函数readLines( )下载网页,然后使用grep( )和gsub( )等函数来处理它,对于结构复杂的网页,可以使用RCurl包和XML包来提取其中想要的信息

    #之后会针对网页数据抓取与分析给出具体的实战案例

    键盘输入数据

    Data<-data.frame(age=numeric(0),gender=character(0))

    Data<-edit(Data)

    # edit( )函数可以启动数据编辑器,对数据框中的数据进行编辑,如下图所示:

    R还可以导入XML数据,SPSS数据,SAS数据等,以及可以访问MySQL, Oracle, Microsoft Access等多种数据库,以下给出简单总结,感兴趣的读者可以进一步查询相关资料学习

    R语言数据导入总结
  • ?

    专题一 R语言编程从入门到实战—第1章(3) 数据导入

    小丫头

    展开

    工作目录

    获取当前工作目录

    getwd( )

    改变当前工作目录

    setwd("C:\Users\Documents")

    #注:R中斜杠为右斜杠\

    CSV文件导入

    Data<-read.csv("mydata.csv",head=TRUE)

    #head=TRUE/FALSE,表示文件第一行是否包含变量的名称;如果缺少,该值会依据文件格式自动确定

    TXT文件导入

    Data<-read.table("mydata.txt",sep="delimiter")

    #sep为文件分隔符的类型,默认为sep=" "

    EXCEL文件导入

    #如果EXCEL工作簿中只有一个工作表,推荐导成csv文件导入

    .xlsx文件

    install.packages("xlsx")

    #安装需要的包

    library(xlsx)

    #载入需要的包

    Data<-read.xlsx("mydata.xlsx",n)

    #n表示获取工作簿中的第n个工作表

    #可以使用?read.xlsx来获取更多的帮助文件,了解更多read.xlsx()的功能

    .xls文件

    install.packages("RODBC")

    library(RODBC)

    Databook<-odbcConnectExcel("mydata.xls")

    #获取Excel的工作簿

    Datasheet<-sqlFetch(Data,"sheet1")

    #获取工作簿里面具体的表格

    odbcClose(Databook)

    从网页抓取数据

    其中一种基本思路是使用函数

    readLines( )

    下载网页,然后使用

    grep( )

    gsub( )

    等函数来处理它,对于结构复杂的网页,可以使用

    RCurl包

    XML包

    来提取其中想要的信息

    #之后会针对网页数据抓取与分析给出具体的实战案例

    键盘输入数据

    Data<-data.frame(age=numeric(0),gender=character(0))

    Data<-edit(Data)

    # edit( )函数可以启动数据编辑器,对数据框中的数据进行编辑,如下图所示:

    R还可以导入XML数据,SPSS数据,SAS数据等,以及可以访问MySQL, Oracle, Microsoft Access等多种数据库,以下给出简单总结,感兴趣的读者可以进一步查询相关资料学习

  • ?

    R语言基础(4)——数据导出

    牧又蓝

    展开

    在学习好数据的导入以后,我们就可以用R进行数据分析了,今天我们来学习的是跟导入相辅相成的功能,数据的导出。

    数据导出:

    在完成数据的分析工作之后,现在我们要将数据导出了,我们还是介绍两种类型csv和txt。

    导出CSV文件:

    write.table (data, file ="C:\\Users\\Administrator\\Desktop\\resultCsv.csv", sep =",", row.names =FALSE)

    运行以上代码,你的对应路径中就会产生一个名为resultCsv.csv的数据文件:

    导出TXT文件:

    write.table(data,file="C:\\Users\\Administrator\\Desktop\\resultTxt.txt" , sep =" ", row.names =FALSE,col.names =TRUE, quote =FALSE)

    sep指定变量间分隔符,默认为空格,row.names指定是否输出行号,col.names指定是否输出列名,quote指定是否用引号将变量包括。

    跑完代码之后,你对应的文件夹目录下就多对出一个名为newdata的TXT格式数据文件。

    wx 数据科学养成记

    欢迎关注~

  • ?

    R导入excel文件方法

    樊涔

    展开

    今天,小编给大家简单讲一下R导入excel文件的方法。首先,打开Rstudio,在交互界面输入install.packages("readxl"),这行代码是安装相关的包,导入excel文件包有很多种,这里小编仅介绍一种。注意,代码中是字母l不是数字1

    安装好后,我们输入library(readxl),这行代码是加载包。然后输入d<-read_excel("C:\\Users\\Administrator\\Desktop\\示例.xlsx"),这里d是引入的变量,作用可以理解为存储文件的一个东西(当然,可以这样理解,不深究是否形容准确),<-是R中的符号,我们可以大致理解为“=”号。后面跟着的是一个函数,括号内是excel文件的路径,绝对路径。(后面我们再谈相对路径)。注意,这里使用\\符号,不使用\

    导入是否成功呢?我们可以查看,直接输入我们引入的变量d,如下图

    这样,我们就把excel文件导入到R中来了,可以使用这些数据进行绘图,数据分析等。具体怎么操作,我们后面再聊。

    好了,今天小编主要介绍导入excel文件的方法。第一次需要安装包,后面就不需要了。然后加载包,输入上述代码就可以了,文件路径根据自身情况选择哦!

  • ?

    R语言数据导入——二部

    Hana

    展开

    上期我们了解了R语言数据读入的核心函数read.table,现在我们了解一下其他可以用的函数有哪些,以及使用的场景和基本技巧。

    非关系结构文件读入scan()

    除了read.table()这类读取文本文档的函数,还可以用scan()函数读入。不同的是它的返回值为列表或者向量。

    假设我们有下述文本文档

    24

    1991

    21

    1993

    53

    1962

    下列命令可以读入该数据

    data<-scan("e:/birth.txt")data

    ## [1] 241991211993531962

    此外,你代码稍加改造可以将数据变矩阵。

    matrix(data,nrow=2,byrow=FALSE)

    ## [,1][,2][,3]

    scan()也同样支持访问url数据上的数据,现在我们访问网上的一个age数据

    data<- scan("https://s3.amazonaws/assets.datacamp/blog_assets/age.csv", what = list(Age = 0,

    ## $Age

    注意上述代码中的what参数,如果what为list类通过上述代码可以读入类似于spreadsheet类型的文本文档。只需要定义每行中各个项目(列)的类型。scan()其他众多参数的用法和read.table比较类似。

    固定列宽数据读入read.fwf()

    有的时候我们可以知道每一列的宽度是多少,下列代码可以让我们读入这类数据

    data<- read.fwf("https://s3.amazonaws/assets.datacamp/blog_assets/scores.txt", widths= c(7,-14,1,-2,1,1,1,1,1,1),

    ## subject sex s1s2s3s4s5s6

    上述代码中width参数给出了字段的宽度。本例中,前7个字符为课程名字;然后的14个字符我们认为不需要,用-14跳过;接着,性别这一列需要一个宽度的字符;后面的2个空格不需要,用-2跳过;后续的成绩每列需要一个宽度1,1,1,1,1,1传入参数中。这些参数在不同的数据结构下,会有所不同。

    另外,还可以使用read.fortran()函数读取数据,详细方法可以参见help文档理解。

    导入excel数据

    剪切板导入excel表格

    如果你已经有了个打开的表格,你可以复制其中的内容,然后用readClipboard()或者read.table()函数导入数据。

    readClipboard()#Only on Windows

    RODBC包读入excel数据

    通过RODBC包同样可以导入excel数据表。代码样例如下

    library(RODBC)

    其中,dsn的写法可以参考odbcConnect()函数的帮助文档。此外,odbcConnectExcel()同样可以读入excel数据。

    当你读入了Excel数据表后,相当于建立了一个连接,你可以使用sql语句来操作数据

    query<- ""

    用RODBC包的建立了连接后,在操作完数据要使用odbcCloseAll()

    其他方法读入excel数据

    其他可以参考的方法有: * openxlsx包中的read.xlsx函数。 * readxl包中的read_excel函数。

    其他类型的数据读入

    其他主流数据类型R可支持的包括有JSON格式,SPSS文件,Stata文件,SAS文件,s-plus文件,EpiInfo文件,matlab文件,Octave文件,FitbitScraper 数据,Quantmod 数据,ARFF 文件。 支持导入的数据库有,MogoDB,MySQL,Oracle,PostgreSQL,SQLite,RJDBC,dBase等。

    二进制数据读入

    二进制数据由二进制浮点组成,8个浮点为一个字节。可以使用readBin函数读入此类数据。

    connection<- file("", "rb") #You open the connection as "reading binary"(rb)

    GIS数据读入

    地理信息数据在R中也比较常用,常见的rgdal和raster包都有对应的函数处理此类数据。

    大型数据集的读入

    如何导入较大的数据一直是R用户的经常讨论的问题,除了将数据导入数据库中处理外,也有一些比较不错的处理大型数据的方法。

    data.table包中的fread函数是比较容易实现快速读入大数据的方法,读入大型数据速度相当理想。

    library(data.table)

    ff包:该程序包磁盘缓存的技术可以读入超过内存限值大小的数据,常用的函数有read.table.ffdf(),read.csv.ffdf()等。

    library(ff)

    bigmemory包,此包也常用于处理大型数据。样例代码如下,但是此包不能用于windows系统:

    library(bigmemory)

    sqldf包,此包也可以考虑用于处理大型数据,它还可以使用sql语句处理数据。用read.csv.sql()函数读入数据。

    library(sqldf)

    随后我们别忘了R中的read.table函数,但是,用此函数读入大型数据,需要对参数有较好的控制。简单说,你能设置的参数越多,读入数据的速度越快。

    总结

    最后,我们将上述常见的方法做个了总结表格,读者可在用时参考,该表格涵盖了大部分常用数据格式的读入方法。

    函数

    来源

    描述

    scan

    r-base

    顺序读取文件中的数据值

    read.fwf

    按行和指定列宽度读取数据

    read.fortran

    采用fortran格式设置读取固定格式数据

    readClipboard

    读取剪切板中的数据

    odbcConnect

    RODBC包

    读取excel数据,采用odbc

    gs_read

    googlesheet包

    读取google sheet

    read.DIF

    读取DIF文件

    read_excel

    readxl包

    读取excel文件

    read.xlsx

    openxlsx包

    读取excel的xlsx文件

    read.ods

    readODS包

    读取open document表格文档

    fromJSON

    jsonlite包

    读取JavaScript的json文件

    read_spss

    haven包

    读取spss文件

    read_dta

    读取stata文件

    read.xport

    forgein包,sasXPORT包

    读取sas文件

    read.S

    foreign包

    读取s-splus文件

    read.epiinfo

    读取epi Info文件

    readMat

    R.matlab包

    读取MATLAB文件

    read.octave

    读取Octave文件

    read.arff

    读取Weka属性关系文件(ARFF)

    mongolite包,Rmongo包,RODBC包,Roracle包,RPostgreSQL包,RSQLite包,RJDBC包

    各类常见数据库导入数据到R

    readBin

    读入二进制文件

    hdf5包,h5r包,rhdf5包,RNetCDF包,ncdf包

    读入hdf文件,NASA和UCAR常用气象数据读取

    read.dbf

    读入DBF文件

    read.ftable

    读入无格式列联表Flat contingency table

    fread

    data.table包

    大型文本文档读入

    read.table.ffdf read.csv.ffdf …

    ff包

    read.big.matrix

    bigmemory包

    大型文本文档读入,无法在windows下使用

    read.csv.sql

    sqldf包

    read.table

    大型文本文档读入,但是需要合理设计参数,否则速度不理想

    来源:DataCamp 编译:亮亮

  • ?

    数据科学养成记 之 R语言基础(1)——数据导入

    Saimaa

    展开

    在配置好R语言的环境,安装好RStudio后,想要进行数据分析,我们首先要进行数据的导入。R语言支持的数据类型很多,包括数据库文件,excel文件,csv文件,txt文件等等。本文介绍在作者日常中最常用到的csv及txt文件的读取,excel文件虽然也是日常中的常用文件,但是由于excel本身的行数限制及读取需要专用包的支持,在我的日常中经常是将excel另存为csv或者txt再导入R中进行数据分析。

    准备工作:

    首先在excel中创建如下文件:

    另存为成csv和txt文件保存在桌面,名称分别为为R1.csv,R1.txt

    TXT文件导入:

    文件路径在桌面,名为R1.txt

    #txt文件导入

    dataTxt<- read.table("C:\\Users\\Administrator\\Desktop\\R1.txt",header = T)

    #如果文件内数据第一行不是标题,需要在括号内路径后指定顶行不为标题,read.table("文件路径",header = F)(需要注意下R中文件的路径与PC上文件路径使用的斜杠格式及方向)

    导入后,数据文件存放在右上侧Environment项目下的Data列表中,可以直接点击查看,也可以通过view(dataTxt)预览数据,或者head(dataTxt)预览数据前几行。

    CSV文件导入:

    文件路径在桌面,名为R1.csv

    #csv文件导入

    dataCsv<- read.csv("C:\\Users\\Administrator\\Desktop\\R1.csv", header=T)

    #其他参数包括分隔符等可在R中输入help("read.table")查看。

    有问题请留言,大家一定在RStudio中实践一遍,熟能生巧!

  • ?

    数据科学养成记 之 R语言基础(3)——excel数据导入

    语蝶

    展开

    经过昨天对包的学习,今天我们利用前两节课学习的知识来对excel数据进行导入。

    我们常见的excel导入方法为以下3种:

    1.将Excel转存为csv格式文件,读csv文件。

    a<- read.csv('exercise1.csv', header = T)

    2.利用RODBDC包读取excel

    b<- odbcConnectExcel2007('exercise1.xls')

    #32位操作系统使用odbcConnectExcel函数

    sqlTable(b)

    根据需求读取sheet1

    b<- sqlFetch(b, 'Sheet1$')

    odbcClose(b) #关闭语句

    3.利用openxlsx包读取excel

    c<- read.xlsx('exercise1.xlsx', sheet = 1)

    综合来看,openxlsx的方法简单粗暴,少有bug出现。被评为R语言和Excel读取的神器。

    注意,openxlsx包仅适用于.xlsx格式文件。前期的xls格式文件可能还需要前两种方法来读取。除了以上三种方法,还有类似的包如xlsx、readxl。

    用读取excel来验证前两节课的学习成果吧!

    wx 数据科学养成记

    欢迎关注!

    数据科学yang'cheng'j

  • ?

    R学习笔记系列—R语言从文本和Excel文件中读取数据

    邬迎曼

    展开

    1.4.1 从文本文件中导入数据

    可以使用 read.table() 函数从带分隔符的文本文件中导入数。调用格式为:

    这个函数看上去很复杂,但其实很多参数在使用时不用明确指出来,使用默认值可以满足绝大部分情况,因此实际使用还是比较简单的,下面我们简单介绍一下参数含义。

    file: 字符型,文件名称,要从中读取文件的完整路径。

    header: 逻辑型,指定是否在首行包含变量名,默认为 FALSE。

    sep: 字符型,分割字符,默认为"",代表空白字符,包括空格(一个或多个)、制表符、 换行符、回车

    dec: 字符型,指定小数点字符,默认为".",一般不用修改。

    numerals: 字符型,在数字转换会损失精度时的处理方法,allow.loss 表示允许精度损失;warn.loss 允许精度损失,但显示一条警告信息;no.loss 不允许精度损失,即转换为数字,而是转换为因子或者不转换,保留字符串形式。

    row.names 字符向量,为行指定名称。

    col.names 字符向量,为列指定名称,若列名在第一行定义好了,可不用。

    stringAsFactors: 逻辑型,是否将字符串自动编码为因子,默认为 TRUE。

    na.strings: 字符向量,定义代表缺失值的字符串,比如c("N",".")会将 "N" 和"." 两个字符读取为缺失值,默认为 "NA"。

    colClasses: 字符向量为列指定类型,比如c("numeric","character")指定第一列为数值型,第二列为字符型,若将某列指定为字符串,则不会将其自动编码为因子。

    nrows: 数值型,读取的最大行数,负数为不限制。

    skip: 数值型,读取前跳过的行数。

    check.names: 逻辑型,是否检查变量名在 R 中的有效性,默认为 TRUE。

    fill: 逻辑型,是否自动填充空白值,若各变量行数不一致,是否为空白列添加空白值。

    strip.white: 逻辑型,是否自动过滤掉字符型变量前后的空格。

    comment.char: 字符型,注释字符,以此字符开头的行将被忽略。

    blank.lines.skip 逻辑型,是否忽略空白行,默认为 TRUE。

    allowEscapes: 逻辑型,是否处理 C 语言风格的转意符。

    text: 字符型,直接指定要读取的字符串,此时 file 应该为空。

    encoding: 字符型,输入文本的编码,若出现乱码,请尝试更改此选项。

    fileEncoding: 字符型,文件编码,若出现乱码,请尝试更改此选项。

    假定我们有一个文本文件,students.txt,记录了6个学生的性别、身高和体重情况,其内容如下:

    那么我们可以用以下方式读取:

    read.table() 是读取按行列组织的数据的基础方式,其它同类函数,比如 read.csv() 等其实是用特定的选项调用了 read.table() 函数。在 read.table() 函数时,应尽量注意以下几点。

    1.建议明确地在首行定义变量名,并加上参数 header = TRUE。

    2.默认的分隔符为"",可以用空格、制表符、换行符等空白字符分割内容,若非空白分割,则需明确指出。

    3.字符型变量会被自动转换为因子型,在读大型文件时,将 stringsAsFactors 设置为 False,能加快读取速度。

    4.默认情况下,read.table 用 # 作为注释标识字符。如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。

    5.read.table()会尽量为每个变量选择合适的数据类型,若你想明确指定请用colClasses,或者生成后根据需要修改。

    6.若读中文时出现乱码,请尝试改变编码

    1.4.2 从 Excel 表格中读取

    从 Excel 里读取数据最简单的办法就是将 Excel 表格存储为以逗号分割的 csv 文件,然后用 read.csv() 函数读取。read.csv() 函数其实就是 read.table() 的定制版,其用法与 read.table() 基本一致。

    若要直接读取 Excel 文件,则需安装专门的包,本书推荐 readxl 包。

    readxl 中有若干读取 Excel 数据的函数,最常用的是 read.excel()。调用格式为:

    path: 字符型,文件路径sheet: 字符型或数值型。若为字符型,则指定 Sheet 名;若为数值,则指定 Sheet 的位置;若不指定,默认第一个Sheetrange: 字符型或数值型,读取的单元格范围,比较复杂,请查看文档col_names: 逻辑型或字符型向量;若为逻辑型,则指定是否将第一行作为变量名;若为字符向量,则直接定义各列名col_types: 字符型向量,定义各列数据类型,比如c("numeric","character");若不指定,则自动匹配na: 字符型向量,指定读取为缺失值的字符串 ,默认情况下,会将空单元格读取为缺失值trim_ws: 逻辑型,是否自动过滤掉字符型变量前后的空白(空格、制表符、换行符skip: 数值型,读取前跳过的行数,因为空白的行会自动跳过,所以这是最小的被跳过的行数n_max: 数值型,最大读取行数guess_max: 数值型,猜测列类别时,检测的最大行数

    假如,在 d 盘有一名为 students.xls 的 Excel 文件,你可以通过如下方式读取。

    喜欢闲适安静的生活,懂一点计算机编程,懂一点统计学和数据分析。(爱编程爱统计)

r导入excel数据

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP