R语言学习笔记——入门篇:第二章-创建数据集

R语言

R语言学习笔记——入门篇:第二章-创建数据集



一、数据集的概念

  • 进行数据分析的第一步就是需要创建一个含有信息的数据集。
    其在R中大致被分为两步:
    1.选择一种数据集来存放数据
    2.将数据导入这种数据集中
  • 数据集:通常是由数据构成的一个矩形数组,行表示观测,列表示变量(不同学家对其称呼不同)。
  • 数据类型:数值型,字符型,逻辑性(bool型TRUE/FALSE,R中区分大小写),复数型(序数)和原生型(字节)

二、数据结构

数据结构:标量,向量,矩阵,数组,数据框,列表。
在这里插入图片描述

2.1、向量

2.1.1、基础概念

  • 向量:一种用于存储数值型字符型逻辑型数据的一维数组
  • 创建方法
x <- c( )
  • 示例
a <- c(1,2,3,4) #数值型向量
b <- c("one","two","three","four") #字符型向量
c <- c(TRUE,FALSE,TRUE,FALSE) #逻辑型向量
  • 注意:单个向量中的数据必须拥有相同的数据类型
  • 标量:只含一个元素的向量

2.1.2、数据的提取

  • 用 [ ] 来提取向量中的数据
  • 数值之间使用 冒号(:) 可以生成一个数值序列。如c(1:4)等价于c(1,2,3,4)
  • 示例
# 向量的创建  
x1 <- c("G", "I", "B", "H")  #创建由GIBH四个英文大写字母的向量

x1[2] #用英文中括号进行提取,对向量x的第二位元素提取
x1[2:4] #提取向量x的第2~4位元素
x1[c(2,4)] #提取向量x的第2和第4位元素
x1[c(1:2,4)] #提取向量x的第1~2和第4位元素

#错误用法
x1[2,4] 
x1[1:2,4] 
  • 结果
> x1 <- c("G", "I", "B", "H")  #创建由GIBH四个英文大写字母的向量

> x1[2] #用英文中括号进行提取,对向量x的第二位元素提取
[1] "I"

> x1[2:4] #提取向量x的第2~4位元素
[1] "I" "B" "H"

> x1[c(2,4)] #提取向量x的第2和第4位元素
[1] "I" "H"

> x1[c(1:2,4)] #提取向量x的第1~2和第4位元素
[1] "G" "I" "H"

> #错误用法
> x1[2,4] 
Error in x1[2, 4] : incorrect number of dimensions
> x1[1:2,4] 
Error in x1[1:2, 4] : incorrect number of dimensions

2.2、矩阵

2.2.1、基础概念

  • 矩阵:一种用于存储数值型字符型逻辑型数据的二维数组,每个元素要求数据类型相同。
  • 创建方法
x <- matrix(vector, nrow = number_of_rows, ncol = number_of_columns , byrow = TRUE/FALSE, dimnames = list(rownames,colnames))
# vector:数组中的数据,数据
# nrow行的维数
# ncol列的维数
# byrow表明矩阵按行填充(TURE)或按列填充(FALSE)
# dimnames:可选,各维度名称标签,各维度名称
  • 也可以在向量基础上利用 dim( ) 函数升阶为矩阵(/数组)
    • 例如
b <- c(1,2,3,4)
dim(b) <- c(2,2)
class(b)

> b <- c(1,2,3,4)
> dim(b) <- c(2,2)
> b
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> class(b)
[1] "matrix" "array"
  • 示例
a <- c("A1","A2")
b <- c("B1","B2","B3","B4")
x <- matrix(1:8,2,4,TRUE,list(a,b))#按行排列
x
y <- matrix(1:8,2,4)#默认按列排列
y
  • 结果
> x <- matrix(1:8,2,4,TRUE,list(a,b))
> x
   B1 B2 B3 B4
A1  1  2  3  4
A2  5  6  7  8
> y <- matrix(1:8,2,4)
> y
     [,1] [,2] [,3] [,4]
[1,]    1    3    5    7
[2,]    2    4    6    8

2.2.2、数据的提取

  • 使用下标和方括号来选择矩阵中的列,行或者元素。
    • x[i,]指矩阵x中的第i行
    • x[,j]指矩阵x中的第j列
    • x[x,j]指矩阵x中第i行第j列的元素
  • 示例
a <- c("A1","A2")
b <- c("B1","B2","B3","B4")
x <- matrix(1:8,2,4,TRUE,list(a,b))
x
x[1,]
x[,2]
x[1,3]
x[1:2,c(1,3)]
x[1:2,1:2]
  • 结果
> x
   B1 B2 B3 B4
A1  1  2  3  4
A2  5  6  7  8
> x[1,]
B1 B2 B3 B4 
 1  2  3  4 
> x[,2]
A1 A2 
 2  6 
> x[1,3]
[1] 3
> x[1:2,c(1,3)]
   B1 B3
A1  1  3
A2  5  7
> x[1:2,1:2]
   B1 B2
A1  1  2
A2  5  6

2.3、数组

  • 数组:与矩阵类似,维度可以大于2,每个元素要求数据类型相同。
  • 创建方法
x <- array(vector,dimensions,dimnames)
# vector:数组中的数据,数据
# dimensions:数值型向量,给出各维度下标最大值,各维度的值
# dimnames:可选,各维度名称标签,各维度名称
  • 示例
a <- c("A1","A2")
b <- c("B1","B2","B3")
c <- c("C1","C2","C3","C4")
x <- array(1:24,c(2,3,4),list(a,b,c))
x
  • 结果
, , C1

   B1 B2 B3
A1  1  3  5
A2  2  4  6

, , C2

   B1 B2 B3
A1  7  9 11
A2  8 10 12

, , C3

   B1 B2 B3
A1 13 15 17
A2 14 16 18

, , C4

   B1 B2 B3
A1 19 21 23
A2 20 22 24
  • 提取数据:与矩阵类似,使用x[a,b,c…]来提取数组x中的元素。

2.4、数据框

2.4.1、基础概念

  • 数据框:与矩阵的区别在于每一列可以包含不同数据类型(任何类型),但是要求每一列的数据类型相同。
  • 创建方法
x <- data.frame(col1,col2,col3,...)
  • 示例
a <- c(1,2,3,4)
b <- c(1.1,2.2,1.1,4.4)
c <- c("C1","C1","C3","C4")
d <- c(TRUE,TRUE,TRUE,FALSE)
x <- data.frame(a,b,c,d)
x
  • 结果
> x
  a   b  c     d
1 1 1.1 C1  TRUE
2 2 2.2 C1  TRUE
3 3 1.1 C3  TRUE
4 4 4.4 C4 FALSE

2.4.2、数据的提取

  • 可以使用类似矩阵的的下标法,也可以指定列名来调用
  • 指定列名有两种方法
    • x[c(“coln1”,“coln2”,…)]
    • x$coln
  • 可以利用table函数来进行列联表
  • 示例
x[2]
x[2:3]
x[c(2,4)]

x[c("a","c")]
x$c

table(x$d,x$b)
  • 结果
> x[2]
    b
1 1.1
2 2.2
3 1.1
4 4.4
> x[2:3]
    b  c
1 1.1 C1
2 2.2 C1
3 1.1 C3
4 4.4 C4
> x[c(2,4)]
    b     d
1 1.1  TRUE
2 2.2  TRUE
3 1.1  TRUE
4 4.4 FALSE
> x[c("a","c")]
  a  c
1 1 C1
2 2 C1
3 3 C3
4 4 C4
> x$c
[1] "C1" "C1" "C3" "C4"
> table(x$d,x$b)
       
        1.1 2.2 4.4
  FALSE   0   0   1
  TRUE    2   1   0
  • 对行数据的提取
数据框名[c("行名1","行名2"),]
# 区别就是后面加了个逗号

2.4.3、代码简化

每次调用数据框中的数据时都需要键入一次变量名,显得繁琐,可以通过联用attach( ),detach( )函数或者单独用with函数来简化代码

2.4.3.1、attach( ),detach( )
  • attch( ):将数据框添加到R的搜索路径中
  • detach( ):将数据框从搜索路径中移除
    • 此函数对数据框无影响,可以省略
  • 示例
# 以上面数据框的示例为例
# mean是函数,用来求算术平均值
# x为数据框,a为x中的变量(就是列名)
mean(x$a)
#与下面的函数是等价的
attach(x)
mean(a)
detach(x)
2.4.3.2、with( )
  • 使用方法
with(数据框名,{操作空间})
  • 示例
with(x,{mean(a)}) #与上面示例等价
# mean是函数,用来求算术平均值
# x为数据框,a为x中的变量(就是列名)
  • with中定义的变量皆为局部变量,除非用<<-往上级写。

2.4.4、实例标识符

  • 利用rowname选项来指定一列的数据作为行名
    • 这一列数据不能有重复
  • 示例
x <- data.frame(a,b,c,d,row.names = a)

2.5、因子

  • 变量分类:名义型,有序型,连续型
    • 名义型:无顺序之分的变量,例如姓名排序
    • 有序型:不涉及数量关系的一种顺序关系,例如健康状态,差,一般,好之间有顺序但不清楚之间具体相差多少
    • 连续型:同时表示了数量和顺序,例如15岁比14岁大一岁
  • 因子名义型和有序型变量,其决定了数据的分析方式和如何数据可视化
  • 函数:factor( x = character(), levels, labels = levels, ordered = TRUE/FALSE)
    • 存储类别:整数向量
    • 取值范围:[1-k] (k是名义型变量中唯一值的个数)
    • 原始数据组成的内部向量会映射到这些整数上
    • 参数
      • x:导入的原始向量
      • levels:默认的水平因子排序是按照字母顺序,可以用levels参数来覆盖默认排序
      • labels:可以与levels函数联用来编码成因子,将数值型变量改为字符型变量。
      • order:默认为FALSE,TRUE为有序型变量,FALSE为名义型变量
  • 示例
ID <- c(1,2,3,4)
Age <- c(22,29,40,55)
Type <- c("A","A","B","A")
Status <- c("Poor","Improved","Excellent","Poor")

Type <- factor(Type)
Status <- factor(Status,ordered = TRUE)
# 按照首字母的顺序来排也就是"Poor","Improved","Excellent"——3,2,1
Status <- factor(Status,ordered = TRUE,levels = c("Poor","Improved","Excellent"))
# 按照"Poor","Improved","Excellent"——1,2,3的顺序来排序
Data <- data.frame(ID,Age,Type,Status)
Data
str(Data)
summary(Data)

Data$Status <- c("1","2","3","1")
Data$Status <- factor(Status,ordered = TRUE,levels = c(1,2,3),labels = c("Poor","Improved","Excellent"))
# 将1,2,3替换为"Poor","Improved","Excellent",存在1,2,3以外的数字时将被设为缺失值。
  • 结果
    • 函数str(object)可以提供R中某个对象的信息
      • 结果中显示了Type是一个名义型因子,Status是一个有序型因子,以及如何编码的
    • 函数summary显示了连续型变量age的最小值,最大值,均值和各四分位数,顺序显示了因子的频数
> Data
  ID Age Type    Status
1  1  22    A      Poor
2  2  29    A  Improved
3  3  40    B Excellent
4  4  55    A      Poor

> str(Data)
'data.frame':	4 obs. of  4 variables:
 $ ID    : num  1 2 3 4
 $ Age   : num  22 29 40 55
 $ Type  : Factor w/ 2 levels "A","B": 1 1 2 1
 $ Status: Ord.factor w/ 3 levels "Poor"<"Improved"<..: 1 2 3 1

> summary(Data)
       ID            Age        Type        Status 
 Min.   :1.00   Min.   :22.00   A:3   Poor     :2  
 1st Qu.:1.75   1st Qu.:27.25   B:1   Improved :1  
 Median :2.50   Median :34.50         Excellent:1  
 Mean   :2.50   Mean   :36.50                      
 3rd Qu.:3.25   3rd Qu.:43.75                      
 Max.   :4.00   Max.   :55.00  

2.6、列表

2.6.1、基础概念

  • 列表:一些对象的有序合集,将若干对象整合到单个对象中。
  • 创建方法
x <- list(object1.object2,...)
  • 示例
a <- "My First List"
b <- c(1,2,3,4)
c <- matrix(1:8,nrow = 2,ncol = 4)
d <- c("A","B","C","D")
e <- data.frame(b,d)
f <- list(title=a,values=b,c,d,e)
f
  • 结果
$title
[1] "My First List"

$values
[1] 1 2 3 4

[[3]]
     [,1] [,2] [,3] [,4]
[1,]    1    3    5    7
[2,]    2    4    6    8

[[4]]
[1] "A" "B" "C" "D"

[[5]]
  b d
1 1 A
2 2 B
3 3 C
4 4 D

2.6.2、数据的操作

2.6.2.1、提取
  • 利用 [[ ]] 或者 $
  • 示例
f[[2]]
f[["values"]]
f$values

f[[3]]
  • 结果
> f[[2]]
[1] 1 2 3 4
> f[["values"]]
[1] 1 2 3 4
> f$values
[1] 1 2 3 4
> f[[3]]
     [,1] [,2] [,3] [,4]
[1,]    1    3    5    7
[2,]    2    4    6    8
> 
  • :如果和上述对数据框等数据提取一样使用 [ ],提取出来的不是数值而是子列表,因为列表是双层的,外面一层list壳,里面包裹着变量的壳,变量里面才是数值,[ ] 类似于剥壳操作,列表需要剥两次才能取到值。
  • 示例
f[2]
class(f[2])
f[[2]]
class(f[[2]])
f[2][1]
f[[2]][1]
  • 结果
> f[2]
$values
[1] 1 2 3 4

> class(f[2])
[1] "list"
> f[[2]]
[1] 1 2 3 4
> class(f[[2]])
[1] "numeric"
> f[2][1]
$values
[1] 1 2 3 4

> f[[2]][1]
[1] 1
2.6.2.2、添加
  • 将新的数据赋给当前维度+1的空间内
f[6] <- "添加"
2.6.2.3、删除
  • 将NULL赋给需要删除的维度空间内
f[1] <- NULL
2.6.2.4、合并
  • 将多个列表放在向量中赋给新的列表
list1 <- list("1","2","3")
list2 <- list("4","5","6")
new_list <- c(list1,list2)
2.6.2.5、拆分
  • 使用unlist( ) 函数将列表转换为向量
list1 <- list(1,2,3)
list2 <- list(4,5,6)
v1 <- unlist(list1)
v2 <- unlist(list2)

#向量算法
v3 <- v1+v2 # 只有数值型可以进行向量之间的算法
> v3
[1] 5 7 9

补充——基础定义介绍

  • 对象:可以赋值给变量的任何事物(常量,数据结构,函数,图形等)
  • 对象的模式:描述对象如何存储的
  • 对象的:某类函数如何处理对象的

补充——注意事项

  • 对象名称中的 “.” 没有特殊意义
  • R不提供多行注释的功能
  • 调试:可以将想让解释器忽视的代码放在if(FALSE){ }中,将FALSE改为TRUE就可以允许运行代码
  • 将值赋给某个列表,矩阵,数组或列表中时如果超出容纳范围,R会自动扩充其范围
x <- c(1,2,3)
x[6] <- 6
> x
[1]  1  2  3 NA NA  6
x <- x[1:3]
> x
[1] 1 2 3
  • R中没有标量,以单元素向量的形式出现
  • R中的下标从x[1]开始而不是x[0]
  • R中不能声明变量,只有在首次被赋值时生成

补充——查询,判断,修改数据类型

  • 查询class( )mode( )typeof( )
  • 判断is.arrary(/list/character …) 输出TRUE或FALSE
  • 修改as.arrary(/list/character …)

三、数据的输入

向R中导入数据的权威指南可以在这里下载

3.1 、使用键盘输入数据

适用于处理小数据集

3.1.1、R内置的文本编辑器

  • 导入方法:函数edit( )/fix( )
    • x <- edit(x) 等价于 fix(x)
  • 示例
x <- data.frame(age=numeric(0),gender=character(0),weight=numeric(0))
x <- edit(x)
fix(x)
# age=numeric(0)创建一个数值型数据模式(character为字符型),但是不包含数据的变量
# edit( )函数本身是在对象的一个副本上修改的,所以如果不将修改结果赋给一个目标,修改内容将丢失
# x <- edit(x)等价于fix(x)

# 当然你也可以什么都不创建,直接在数据框里添加
y <- data.frame()
y <- edit(y)
  • 结果
    在这里插入图片描述

3.1.2、代码中嵌套数据

  • 导入方法:函数read.table( )
  • 示例
x <- "
ID Age gender
1 11 male
2 22 female
3 33 female
4 44 male
"
y <- read.table(header=TRUE,text = x)
  • 结果
> y
  ID Age gender
1  1  11   male
2  2  22 female
3  3  33 female
4  4  44   male

3.2、导入带分隔符的文本数据(.txt, .csv)

  • 导入方法:函数read.table( )
    • 此函数可以导入表格格式文件,并保存为数据框。
    • 语法
x <- read.table(file,options)
# file为带分隔符的ASCLL文本文件
# options为控制数据的选项

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 = FALSE,
           fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)
选项功能
header=TRUE/FALSETURE:文件第一行包含了变量名
sep按什么分隔符来读取数据,默认为sep=” “表示一个(或多个)空格、制表符、换行或回车。sep=",“表示逗号sep=”\t"表示制表符
row.name指定一列(或多列)数据,作为行名,可选参数
col.nameheader=FALSE时,指定一个包含变量名的字符向量,作为列名
na.strings表示缺失值的可选字符向量,如na.strings=c(“-9”),就会将-9读为NA
colClasses可选的分配到每一列的类向量。如colClasses=c(“numeric”,“character”,“NULL”),会将第一列设为数值型,第二列为字符型,跳过第三列,当数据不止3列,会循环利用colClasses的值。处理大文本数据时,十分有效
quote用于对有特殊字符的字符串划定界限的自负床,默认为双引号(” “)或单引号(’ ')
skip读取数据前跳过的行数(用来跳注释)
stringsAsFactors=TRUE/FALSE标记字符向量是否需要转化为因子,默认值为TRUE,将该选项设置为FALSE会大幅提升处理速度
text代码中嵌套数据,不能与file同时存在
  • :当导入的数据中存在空白数据时,使用NA填充,同时在函数 read.table( ) 中写入参数选项,fill=TRUE

3.3、导入Excel数据

  • 最方便的方法就是将Excel中的数据导出为(.csv)文件,然后用前面的方法导入。
  • 此外亦可以用xlsx包直接导入Excel文件,另外还需要xlxjars和rJava包,以及一个可以正常运行的Java。
  • 导入方法
install.packages("xlsx")
library(xlsx)
x <- read.xlsx(file,n)
#file是Excel的绝对路径,n表示要导入的工作表序号
  • 替代的包包含有XLConnect和openxlsx包,前者依赖于Java,后者不是。
  • 所有的包都可以创建和操作Excel文件。

3.4、导入XML数据

  • XML包允许你读取,写入和操作XML文件

3.5、从网页抓取数据

  • 通过Web数据抓取或者应用程序接口(application programming interface,API)实现

3.6、导入SPSS数据

  • 可以通过foreign包中的read.spss( )函数导入R中,或Hmisc包中的spss.get( )函数。spss.get( )函数是对read.spss( )函数的封装,更加的快捷方便。
  • 导入方法
install.packages("Hmisc")
library(Hmisc)
x <- spss.get("filename.sav",use.value.labels=TRUE)
# use.value.labels=TRUE表示让函数将带有标签的变量导入R中水平对应的相同因子

3.7、导入SAS数据

  • foreign包中的read.ssd( ) 函数,Hmisc包中的sas.get( ),以及sas7bdat包中的read.sas7dbat( ),前面两种方法需要安装SAS软件。
  • 导入数据
install.packages("Hmisc")
library(Hmisc)
datadir <- "data的绝对路径"
sasexw <- "sas.exe的绝对路径"
mydata <- sas.get(libraryName = datadir,member = "clients",sasprog = sasexe)
# libraryName是包含SAS数据集的文件夹,membership数据集的名字(去掉后缀sas7dbat),sasprog是sas。exe的绝对路径

也可以在SAS中导出为csv文件

sas程序
liobname datadir "data的绝对路径"
 proc export data=datadir.clients
 outfile="clients.csv"
 dbms=csv;
run;

R程序
 mydata <- read.table("client.csv",header=TRUE.sep=",")

sas7dbat函数

 install.packages("sas7dbat")
 library(sas7dbat)
 mydata <- read.sas7dbat(sas7dbat文件的绝对路径)

3.8、导入Stata数据

  • 导入方法
library(foreign)
x <- read.dta("mydata.dta")

3.9、导入NetCDF数据

  • 开源软件库NetCDF(网络通用数据格式),定义了一种机器无关的数据格式,可用于创建和分发面向数组的科学依据。
  • 其通常用来存储地球物理数据。
  • ncdf包与ncdf4包为NetCDF提供了R接口
  • 导入方法
install.packages("ncdf")
library(ncdf)
nc <- nc_open("mynetCDFfile")
myarray <- get.var.ncdf(nc,myvar)
# myvar为mynetCDFfile中的变量

3.10、导入HDF5数据

  • HDF5(分层数据格式)是一套用于管理超大型和结构极端负载的数据集的软件技术方案。
  • rhdf5包为R提供了一个HDF5接口,用以下代码安装,此包在Bioconductor网站上面。
source(”http://bioconductor.org/bioLite.R“)
bioLite(”rhdf5“)

3.11、访问数据库管理系统

R有许多面向关系型数据库管理系统的(DBMS)的接口。

3.11.1、ODBC接口

  • 通过RODBC包来访问数据库
  • 第一步需要针对系统和数据库类型安装并配置合适的ODBC驱动
  • 第二步安装RODBC包
  • RODBC包允许R与数据库双向通信,意味着可以对数据库内容进行读写。
  • 导入数据
 install.packages("ODBC")
 library(ODBC)
 myconn <- odbcConnect("mydsn",uid="name",pwd="password")
 数据框1 <- sqlFetch(myconn,sql表1)
 数据框2 <- sqlQuery(myconn,"select * from Punishment")
 close(mycoon)
 # 首先载入RODBC包,通过一个已经注册的数据源(mycoon)和用户名name密码password打开数据库连接
 # 连接字符串被传递给sqlFetch,其将sql表1复制到数据框1
 # 函数sqlQuery()中可以插入任意的sql语句,这里全选了sql表2的数据赋给了数据框2

3.11.2、DBI相关包

DBI包为访问数据库提供了一个通用且一致的客户端接口

3.12、通过Stat/Transfer导入数据

Stat/Transfer是一款可以在32款数据格式之间转换的应用程序,包括R

补充——用连接来导入数据

  • 函数file( ) 允许访问文件,剪切板和C级别的标准输入
  • 函数gzfile( ), bzfie(), xzfile( ), unz( ) 允许读取要锁文件
  • 函数url( ) 可以访问网上文件

四、数据集的标注

其实就是对数据集的变量名和值进行重命名(修改)

4.1、变量标签

  • 方法
names(变量)[第几列数据] <- "修改后的名称"
  • 示例
a <- c(1,2,3,4)
b <- c(1.1,2.2,1.1,4.4)
c <- c("C1","C1","C3","C4")
d <- c(TRUE,TRUE,TRUE,FALSE)
x <- data.frame(a,b,c,d)

names(x)[2] <- "age"
> x
  a age  c     d
1 1 1.1 C1  TRUE
2 2 2.2 C1  TRUE
3 3 1.1 C3  TRUE
4 4 4.4 C4 FALSE

4.2、值标签

  • 方法:利用因子中的levels和labels
  • 示例
ID <- c(1,2,3,4)
Age <- c(22,29,40,55)
Type <- c("A","A","B","A")
Status <- c("1","2","3","1")

Type <- factor(Type)
Status <- factor(Status,ordered = TRUE,levels = c(1,2,3),labels = c("Poor","Improved","Excellent"))
# 将1,2,3替换为"Poor","Improved","Excellent",存在1,2,3以外的数字时将被设为缺失值。
Data <- data.frame(ID,Age,Type,Status)

五、函数总结

5.1、RODBC中的函数

函数功能
odbcConnect(dsn,uid" “,pwd=” ")建立一个到ODBC数据库的连接
sqlFetch(channel,sqltable)读取ODBC数据库中某个表到一个数据框中
sqlQuery(channel,query)向ODBC数据框提交一个查询并返回结果
sqlSave(channel,mydf,tablename=sqtable,append=FALSE)将数据框写入或更新(append=TRUE)到ODBC数据库中的某个表
sqlDrop(channel,sqtable)删除ODBC数据库中的某个表
close(channel)关闭连接

5.2、处理数据对象的实用函数

函数功能
length(object)显示对象中元素的数量
dim(object)显示某个对象的维度
str(object)显示某个对象的结构
class(object)显示某个对象的类或类型
mode(object)显示某个对象的模式
names(object)显示某个对象中各成分的名称
c(object1,object2,…)将对象合并入一个向量
cbind(object1,object2,…)按列合并对象
rbind(object1,object2,…)按行合并对象
object输出某个对象
head(object)列出某个对象的开始部分
tail(object)列出某个对象的结束部分
ls()显示当前的对象列表
rm(object1,object2,…)删除一个/多个对象
rm(list=ls())删除环境中几乎所有对象
newobject <- edit(object1,object2,…)编辑对象并将其保存到newobject
fix(object)直接编译对象
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值