前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言:数据类型

R语言:数据类型

作者头像
努力在北京混出人样
发布2019-02-18 14:56:09
6890
发布2019-02-18 14:56:09
举报
文章被收录于专栏:祥子的故事

数据类型

包括如下几种类型:

  • Array
  • Data Frame
  • Factor
  • Matrix
  • Vector
  • Complex
  • Date/Time
  • List
  • Operators

Array

格式: array(data=NA,dim=length(data),dimnames=NULL)

代码语言:javascript
复制
x<-array(1:9)
x
## [1] 1 2 3 4 5 6 7 8 9
x<-array(1:9,c(3,6))
x
##      [,1] [,2] [,3] [,4] [,5] [,6]
## [1,]    1    4    7    1    4    7
## [2,]    2    5    8    2    5    8
## [3,]    3    6    9    3    6    9
x<-1:64
dim(x)<-c(2,4,8)
is.array(x)
## [1] TRUE
x
## , , 1
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    3    5    7
## [2,]    2    4    6    8
## 
## , , 2
## 
##      [,1] [,2] [,3] [,4]
## [1,]    9   11   13   15
## [2,]   10   12   14   16
## 
## , , 3
## 
##      [,1] [,2] [,3] [,4]
## [1,]   17   19   21   23
## [2,]   18   20   22   24
## 
## , , 4
## 
##      [,1] [,2] [,3] [,4]
## [1,]   25   27   29   31
## [2,]   26   28   30   32
## 
## , , 5
## 
##      [,1] [,2] [,3] [,4]
## [1,]   33   35   37   39
## [2,]   34   36   38   40
## 
## , , 6
## 
##      [,1] [,2] [,3] [,4]
## [1,]   41   43   45   47
## [2,]   42   44   46   48
## 
## , , 7
## 
##      [,1] [,2] [,3] [,4]
## [1,]   49   51   53   55
## [2,]   50   52   54   56
## 
## , , 8
## 
##      [,1] [,2] [,3] [,4]
## [1,]   57   59   61   63
## [2,]   58   60   62   64
x[1,,]
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,]    1    9   17   25   33   41   49   57
## [2,]    3   11   19   27   35   43   51   59
## [3,]    5   13   21   29   37   45   53   61
## [4,]    7   15   23   31   39   47   55   63
x[1,2,]
## [1]  3 11 19 27 35 43 51 59
x[1,2,1]
## [1] 3

Data Frame

代码语言:javascript
复制
data(BOD)
x<-BOD
is.matrix(x)
## [1] FALSE
is.data.frame(x)
## [1] TRUE
class(x)
## [1] "data.frame"
x
##   Time demand
## 1    1    8.3
## 2    2   10.3
## 3    3   19.0
## 4    4   16.0
## 5    5   15.6
## 6    7   19.8
y<-x[2,]
is.list(y)
## [1] TRUE
is.data.frame(y)
## [1] TRUE
x$Time
## [1] 1 2 3 4 5 7
x$demand
## [1]  8.3 10.3 19.0 16.0 15.6 19.8
attach(x)
demand
## [1]  8.3 10.3 19.0 16.0 15.6 19.8
demand<-demand + 10
demand
## [1] 18.3 20.3 29.0 26.0 25.6 29.8
x$demand
## [1]  8.3 10.3 19.0 16.0 15.6 19.8
detach(x)
demand
## [1] 18.3 20.3 29.0 26.0 25.6 29.8

Factor

格式: factor(x = charactor(),levels,labels = levels,exclude = NA,ordered = is.ordered(x))

代码语言:javascript
复制
v<-c(1,3,5,8,2,1,3,5,3,5)
is.factor(v)
## [1] FALSE
factor(v)
##  [1] 1 3 5 8 2 1 3 5 3 5
## Levels: 1 2 3 5 8
x<-factor(v)
x
##  [1] 1 3 5 8 2 1 3 5 3 5
## Levels: 1 2 3 5 8
is.factor(x)
## [1] TRUE
x<-factor(v,levels = c(2,1))
levels(x)<-c("two","one")
x
##  [1] one  <NA> <NA> <NA> two  one  <NA> <NA> <NA> <NA>
## Levels: two one

Matrix

代码语言:javascript
复制
A<-matrix(c(3,5,7,1,9,4),nrow = 3,ncol = 2,byrow = TRUE)
A
##      [,1] [,2]
## [1,]    3    5
## [2,]    7    1
## [3,]    9    4
rA<-nrow(A)
rA
## [1] 3
cA<-ncol(A)
cA
## [1] 2
B<-t(A)
B
##      [,1] [,2] [,3]
## [1,]    3    7    9
## [2,]    5    1    4
C<-A*A
C
##      [,1] [,2]
## [1,]    9   25
## [2,]   49    1
## [3,]   81   16
C<-A+A
C
##      [,1] [,2]
## [1,]    6   10
## [2,]   14    2
## [3,]   18    8

Vector

代码语言:javascript
复制
v<-c(2,3,5.5,7.1,2.1,3)
v
## [1] 2.0 3.0 5.5 7.1 2.1 3.0
assign("v",c(2,3,5.5,7.1,2.1,3))
c(2,3,5.5,7.1,2.1,3) -> v
v
## [1] 2.0 3.0 5.5 7.1 2.1 3.0
v[3]
## [1] 5.5
1/v
## [1] 0.5000000 0.3333333 0.1818182 0.1408451 0.4761905 0.3333333
2+v
## [1] 4.0 5.0 7.5 9.1 4.1 5.0
v2<--v+1/v+5
v2
## [1]  3.5000000  2.3333333 -0.3181818 -1.9591549  3.3761905  2.3333333
is.vector(v)
## [1] TRUE
is.vector(3,mode = "any")
## [1] TRUE
is.vector(3,mode = "list")
## [1] FALSE
x<-1:10
v
## [1] 2.0 3.0 5.5 7.1 2.1 3.0
x<-rep(2,10)
v
## [1] 2.0 3.0 5.5 7.1 2.1 3.0
v<-seq(1,5,by = 0.5)
v
## [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
v<-seq(length = 10,from = 1,by =0.5)
v
##  [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5

Complex

格式: complex(length.out=0,real=numeric(),imaginary=numeric(),modulus=1,argument=0)

函数

  • as.complex()
  • is.complex()
  • Re()
  • Im()
  • Mod()
  • Arg()
  • Conj()
  • length.out: Desired length of the output vector, inputs being recycled as needed
代码语言:javascript
复制
library(graphics)
z<-complex(real = stats::rnorm(100),imaginary = stats::rnorm(100))
z
##   [1]  0.5200295-2.2646912i -0.5322567+0.0779762i -2.3800465+0.7640518i
##   [4]  0.7011146-1.5866943i -1.5544585+0.9682606i  2.5980975-0.5449572i
##   [7] -1.0006683-0.0431467i  1.3431015-1.8346469i -0.4170697-0.1060395i
##  [10]  1.0495727+0.2481264i -1.1598388-0.3027608i -1.1415871-0.9839143i
##  [13]  0.9634596-0.3406711i -0.6469331+0.5942862i  0.3491618+1.1139532i
##  [16] -0.2643147+0.0519278i  0.6534257-1.3681752i -2.0621975+1.7368652i
##  [19] -0.4978312+2.4327759i  0.2072797-1.4709151i -1.1051954+0.3610744i
##  [22] -0.5659170-0.6280635i  0.8336062-1.2781031i -0.0378319+0.7158486i
##  [25] -1.6976023+0.1562052i  0.9617835-0.4216835i -1.5994119+0.0569988i
##  [28]  0.0514633-0.2842285i -0.6288963+0.2978067i  1.7278770-0.7497994i
##  [31]  1.0417099+0.0707912i  0.5190370+0.7463731i  0.4725722+0.8511658i
##  [34]  0.0945794-0.8224629i -0.7348969+0.2633703i -0.3660376+0.7127934i
##  [37]  1.3866084+0.5275001i  1.5448222+0.8082621i  1.2042018-0.1581438i
##  [40] -1.4237678+0.1370675i -0.0881483+2.8495642i -0.0400514-0.2569562i
##  [43] -0.6825624-1.0050652i  2.5456405+1.6611583i  0.0205514-0.6191978i
##  [46]  0.5180435+0.3025533i  0.3526055+0.6939888i -0.1410374-1.6014629i
##  [49]  0.8880902+0.0202024i -0.4442246+0.2276906i  0.0481735-0.9808916i
##  [52]  0.5404179+0.6190054i -1.4538082+2.3068149i  0.4927693-0.0660740i
##  [55]  1.3784518+0.7746101i  0.4527109-1.0455589i  0.2950279-0.8670672i
##  [58]  0.6241538-1.3237922i  0.7379039-0.3067607i  1.3496676-1.1139908i
##  [61] -0.3770614+0.1915712i -0.7320517-1.0273366i  0.7041309+0.4240790i
##  [64] -0.8238194-0.5443358i -0.1569915+0.4223923i -0.0821708+0.4785644i
##  [67]  1.2273175+0.1608278i -1.6662780+0.2332501i  0.3141801+0.6644287i
##  [70] -0.2627204+0.1527057i  0.6326420+1.6541494i -3.0225302-0.0828999i
##  [73] -0.5267586-0.5149930i -0.1209515+0.9474985i -0.4087781+0.5585448i
##  [76]  1.2355654-0.3827317i  0.6464085+1.1398532i  1.3652592+0.6154433i
##  [79] -1.9035074-0.1179588i  0.8216094+3.0352598i  0.5479892+0.0764115i
##  [82]  0.6781626+0.1278338i  0.3997126-0.6050511i  0.0183661-1.2055350i
##  [85]  0.1103128+0.1660670i  0.6035714+0.7507500i  0.1462197+0.2927559i
##  [88]  0.6771124+2.4199871i -0.4632352-0.6433767i -3.1092950-1.6220725i
##  [91] -2.1641098+0.2462180i  0.0804014+0.8360996i  0.6468068+1.2322475i
##  [94] -0.9611167+0.0499096i  1.2155416-0.1811604i  1.1560557-0.5548846i
##  [97]  0.2000294-0.9172184i -0.1139657+0.9069213i  1.1837461+1.2375861i
## [100]  0.5024251+0.5594804i
z1<-1:2+1i*(8:9)
z1
## [1] 1+8i 2+9i
zz<-(rep(1:4,len = 9)+1i*(9:1))/10
zz
## [1] 0.1+0.9i 0.2+0.8i 0.3+0.7i 0.4+0.6i 0.1+0.5i 0.2+0.4i 0.3+0.3i 0.4+0.2i
## [9] 0.1+0.1i
zz.shift<-complex(modulus = Mod(zz),argument = Arg(zz) + pi)
plot(zz,xlim = c(-1,1),ylab = c(-1,1),col = "red",asp = 1,
     main = expression(paste("Rotation by","",pi == 180^o)))
abline(h = 0,v = 0,col = "blue",lty = 3)
points(zz.shift,col = "orange")

Date/Time

代码语言:javascript
复制
date()
## [1] "Sat Jul 23 18:48:06 2016"
Sys.Date()
## [1] "2016-07-23"
Sys.time()
## [1] "2016-07-23 18:48:06 CST"
class(date())
## [1] "character"
class(Sys.Date())
## [1] "Date"
class(Sys.time())
## [1] "POSIXct" "POSIXt"
x<-"19:18:05"
y<-strptime(x,"%H:%M:%S")
y
## [1] "2016-07-23 19:18:05 CST"
class(y)
## [1] "POSIXlt" "POSIXt"
y$sec
## [1] 5

其他格式的时间类型:

List

代码语言:javascript
复制
x<-list(batch = 3,label = "Lung Cancer Patients",subtype = c("A","B","C"))
x
## $batch
## [1] 3
## 
## $label
## [1] "Lung Cancer Patients"
## 
## $subtype
## [1] "A" "B" "C"
is.list(x)
## [1] TRUE
x[[1]]
## [1] 3
x[[2]]
## [1] "Lung Cancer Patients"
x[[3]]
## [1] "A" "B" "C"
x[[3]][2]
## [1] "B"
x$subtype
## [1] "A" "B" "C"
x[["subtype"]]
## [1] "A" "B" "C"
length(x)
## [1] 3
y<-list(operator = "Mary",location = "New York")
y
## $operator
## [1] "Mary"
## 
## $location
## [1] "New York"
z<-list(cost = 1000.24,urgent = "yes")
z
## $cost
## [1] 1000.24
## 
## $urgent
## [1] "yes"
final_list<-c(x,y,z)
final_list
## $batch
## [1] 3
## 
## $label
## [1] "Lung Cancer Patients"
## 
## $subtype
## [1] "A" "B" "C"
## 
## $operator
## [1] "Mary"
## 
## $location
## [1] "New York"
## 
## $cost
## [1] 1000.24
## 
## $urgent
## [1] "yes"
y<-as.data.frame(x)
y
##   batch                label subtype
## 1     3 Lung Cancer Patients       A
## 2     3 Lung Cancer Patients       B
## 3     3 Lung Cancer Patients       C
y<-as.matrix(x)
y
##         [,1]                  
## batch   3                     
## label   "Lung Cancer Patients"
## subtype Character,3

Operators

操作数 + - / ^ %% %/% < > \= <= >= != ! | &

代码语言:javascript
复制
'+' <- function(x,y) x*y
3+5
## 15
rm('+')
3+5
## 8
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年07月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据类型
    • Array
      • Data Frame
        • Factor
          • Matrix
            • Vector
              • Complex
                • 函数
              • Date/Time
                • List
                  • Operators
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档