R语言对数据框某一列赋值 r语言怎么加一列数据_r语言中which的使用


R语言中有六大类数据类型:

1向量

2因子

3列表

4矩阵

5数组/阵列

6数据框

1向量

向量是用于存储数值型、字符型或逻辑型数据的一维数组,是R中的最小单元:

用函数c()可以来创建一个向量,如:

> a <- c(1,2,3,4)
> b <- c('tongren hospital','tiantan hospital','xiehe hospital')
> c <- c(TRUE,FALSE,TRUE,FALSE)

上述代码定义三个向量,a,b,c分别存储数值型,字符型和逻辑型变量。

#向量里面只能存放相同类型的数据

2因子

在R语言中,因子(factor)往往表示等级,如高、中、低。

> colour <- c('Grey', 'Grey', 'Red', 'Yellow')

>col <- factor(colour)#与向量不同,因子的取值往往是有限个数据点

3列表

> A <- c(1,2,3)
> B <- c('mou', 'x', 'c' )
> C <- c(T,F)

> list(A,B,C)#查看列表

[[1]]
[1] 1 2 3
[[2]]
[1] "mou" "x" "c" 
[[3]]
[1] TRUE FALSE

#可以存放不同类型,不同长度的数据。

/*------------------------------------------------------------*/

#list很神奇,因为它逐层打开,你很难说他是多维的。

#但是它又能容纳向量、因子、以及下面要提到的矩阵、数据框,甚至连自己都不放过。所以#你也很难说他是一维的。

#简直就是吃数据的巨怪(文末讲完所有数据类型后会放个例子

/*------------------------------------------------------------*/

4矩阵

语法: matrix(data, nrow = , ncol = , byrow = F)

byrow = F表示按列来存放数据(默认), byrow=T表示按行存放数据;

看下实例,注意区分按列和按行存储的区别:

> caokai = matrix(1:36, 4, 9,byrow = T)
> caokai
 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 1 2 3 4 5 6 7 8 9
[2,] 10 11 12 13 14 15 16 17 18
[3,] 19 20 21 22 23 24 25 26 27
[4,] 28 29 30 31 32 33 34 35 36
> caokai1 = matrix(1:36, 4, 9,byrow = F)
> caokai1
 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 1 5 9 13 17 21 25 29 33
[2,] 2 6 10 14 18 22 26 30 34
[3,] 3 7 11 15 19 23 27 31 35
[4,] 4 8 12 16 20 24 28 32 36

5 数据框

实际数据分析中最常见的类型(它允许每一列的变量类型不同,数值/文本/日期可以混合,满足实际需要)

name <- c("cao", "li", "liu")
group <- rep(1,3)
sex <- c("男","女","外星人")
data <- data.frame(name, group, sex)
> data
 name group sex
1 cao 1 男
2 li 1 女
3 liu 1 外星人

6.数组

语法: array(data, dim)

data: 必须是同一类型的数据;

dim: 各维的维度组成的向量;

a <- array(1:16,dim=(2,4))体会下面三个实例的区别

> a <- array(1:16,c(4,4))
> a
 [,1] [,2] [,3] [,4]
[1,] 1 5 9 13
[2,] 2 6 10 14
[3,] 3 7 11 15
[4,] 4 8 12 16
> a <- array(1:16,c(2,4))
> a
 [,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
> a <- array(1:16,c(2,4,2))
> a
, , 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

#数组存放大于等于三维的数据,且只能存放同一类型

好了,六大类都了解了,再回过头看下那头巨怪--list:

caokai_matrix<- matrix(1:9, ncol = 3)
caokai_list<-list(c("RMB","Dollar"),c(100,1000,200))
caokai_frame<-data.frame(caokai_matrix)

caokai_list_new<-list(caokai_matrix,caokai_list,caokai_frame)

caokai_list_new#查看下

[[1]]#第一层 矩阵

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

[1,] 1 4 7

[2,] 2 5 8

[3,] 3 6 9

[[2]]#第二层 列表

[[2]][[1]] 第二层本身是个列表 所以第二层又有第一层

[1] "RMB" "Dollar"

[[2]][[2]]第二层本身是个列表 所以第二层又有第二层

[1] 100 1000 200

[[3]] 第三层 数据框

X1 X2 X3

1 1 4 7

2 2 5 8

3 3 6 9

掌握上述六类数据存储类型,后续统计分析方能游刃有余。