2019-11-20R语言-day3数据输入

Data input

read.table(file,options)

常用的options如下

选项 描述
header 文件第一行是否包含变量名称。如果不指定,read.table()会根据行标签进行判断,即如果首行比下面的行少一列,就是header行。默认为FALSE即数据框的列名为V1,V2...,设置为TRUE时第一行作为列名。
sep 间隔符号。默认是sep=''",代表空格、制表符、换行或回车。可以指定为' ', '\t'等
row.names 指定行名
col.names 指定列名
na.strings 用于表示缺失值的字符向量。指定缺损值。默认为NA
colClasses 指定列的变量类型。如果指定,则用指定的名称替代首行中的列名称
quote 指定字符串分隔符,如" 或 '
stringsAsFactors 逻辑变量,是否将目标变量转化为因子。默认值为TRUE
fill 文件中是否忽略了行尾字段。如果有,必须指定为 TRUE
strip.white 是否去除字符串字段首尾的空白
blank.lines.skip 是否忽略空白行,默认为TRUE。如果要指定为FALSE,需要同时指定 fill = TRUE 才有效
comment.char 注释符。默认使用#作为注释符号,如果文件中没有注释,指定comment.char = "" 会比较安全 (也可能让速度比较快)comment.char = "!" 表示该行中!随后的内容将会被忽略
fileEncoding 如果数据集中含有中文,直接导入很有可能不识别中文,这时加上参数fileEncoding='utf-8'
stringAsFactorsstring stringAsFactors=FALSE,防止导入的数据任何的因子转换

1 导入csv文件 sep=","

mydata <- read.table("C:/Users/jfguo/Documents/R-day3/exp.csv", header=TRUE, sep=",")

加了header=T,则第一行为表头,若不加则第一行就从表头名称开始;sep=","使表格分开,若不加,则全部挤在一起。
question:加row.names = "id",报错Error in data[[rowvar]] : attempt to select less than one element in get1index
原因:
解决方法:

设置第一列为列名的参数是row.names = 1

row.names = 1

加rowname.png

不加 row.names = 1

不加rowname.png


2 导入excel文件

方法1:转换为csv格式,按照上述方法导入;
方法2:使用R包xlsx,第一行应该包含变量/列名。

library(xlsx)
mydata <- read.xlsx("c:/myexcel.xlsx", 1)  #读excel中的第一个工作表
mydata <- read.xlsx("c:/myexcel.xlsx", sheetName = "DEg") #读excel中命名为DEg的sheet表

library(xlsx),报错Error: package or namespace load failed for ‘xlsx’: loadNamespace()里算'rJava'时.onLoad失败了,详细内容: 调用: fun(libname, pkgname) 错误: JAVA_HOME cannot be determined from the Registry

解决: 由于之前重装系统未装JAVA,所以重装J AVA,安装路径与R相同,并添加到系统变量,配置JAVA环境具体可参照http://jingyan.baidu.com/album/6dad5075d1dc40a123e36ea3.html?picindex=1

其中的遇到的问题:

mydata <- read.xlsx("exp2.xlsx")

报错Error in read.xlsx("exp2.xlsx") : Please provide a sheet name OR a sheet index.因为没指定读取哪个工作表。


3 导入TXT文件 sep="\t"

  • 1.对于简单文件,可以简单读取,mydata <- read.table("exp3.txt")

  • 2.对于复杂文件,

      mydata <-read.table("exp3.txt",sep="\t",header=T,row.names = 1)
    

4 导入SPSS文件(.sav)

导入sav格式可以通过foreigh包中read.spss函数和Hmisc包中spss.get函数完成。spss.get函数是read.spss函数的封装,可以自动设置许多参数。建议使用Hmiscspss.get函数。

    # save SPSS dataset in trasport format
get file='c:\mydata.sav'.
export outfile='c:\mydata.por'. 

    # in R 
library(Hmisc)
mydata <- spss.get("c:/mydata.por", use.value.labels=TRUE)
# last option converts value labels to R factors

5导入SAS文件

      # save SAS dataset in trasport format
libname out xport 'c:/mydata.xpt';
data out.mydata;
set sasuser.mydata;
run;

    #in R 
library(Hmisc)
mydata <- sasxport.get("c:/mydata.xpt")
# character variables are converted to R factors

6导入STATA文件

       # input Stata file
library(foreign)
mydata <- read.dta("c:/mydata.dta")

7 导入systat文件

    # input Systat file
library(foreign)
mydata <- read.systat("c:/mydata.dta")

另外还可通过Rstudio右上角Environment面板页中的ImportDataset导入exlsx、SPSS、SAS、Stata文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容