《R语言实战》学习笔记---Chapter2 创建数据集(2)

2023-08-06  本文已影响0人  RSP小白之路

3. 数据结构

R拥有许多用于存储数据的对象类型, 包括标量、 向量、 矩阵、 数组、数据框和列表。 其中数据框是最常用的。

3.4 数据框

数据框(dataframe)变量观测
不同列数据类型/模式(数值型、字符型)可以不同,同一列/变量数据类型相同即可
数据框(dataframe)是你在R中最常处理的数据结构,通过函数data.frame() 创建:

mydata <- data.frame(col1, col2, col3,...)

每一列的名称可由函数names 指定。
书中例子如下:

patientID <- c(1, 2, 3, 4)
age <- c(25, 34, 28, 52)
diabetes <- c("Type1", "Type2", "Type1", "Type1")
status <- c("Poor", "Improved", "Excellent", "Poor")
patientdata <- data.frame(patientID, age, diabetes, status)
print(patientdata)
patientdata打印结果

选取数据框中的元素

> patientdata[1:2]
  patientID age
1         1  25
2         2  34
3         3  28
4         4  52
> patientdata[c("diabetes", "status")]
  diabetes    status
1    Type1      Poor
2    Type2  Improved
3    Type1 Excellent
4    Type1      Poor
> patientdata$age
[1] 25 34 28 52

attach()、detach()和with()函数

> summary(mtcars$mpg)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.40   15.43   19.20   20.09   22.80   33.90 
> table((mtcars$disp))
 71.1  75.7  78.7    79  95.1   108 120.1 120.3   121 140.8   145 
    1     1     1     1     1     1     1     1     1     1     1 
146.7   160 167.6   225   258 275.8   301   304   318   350   351 
    1     2     2     1     1     3     1     1     1     1     1 
  360   400   440   460   472 
    2     1     1     1     1 
> attach(mtcars)
> summary(mpg)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.40   15.43   19.20   20.09   22.80   33.90 
> table(disp)
disp
 71.1  75.7  78.7    79  95.1   108 120.1 120.3   121 140.8   145 
    1     1     1     1     1     1     1     1     1     1     1 
146.7   160 167.6   225   258 275.8   301   304   318   350   351 
    1     2     2     1     1     3     1     1     1     1     1 
  360   400   440   460   472 
    2     1     1     1     1 
> detach(mtcars)
> summary(mpg)   #在detach函数之后,无法使用
Error in summary(mpg) : object 'mpg' not found
> with(mtcars,
+      {print(summary(mpg))
+        table(disp)})
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.40   15.43   19.20   20.09   22.80   33.90 
disp
 71.1  75.7  78.7    79  95.1   108 120.1 120.3   121 140.8   145 
    1     1     1     1     1     1     1     1     1     1     1 
146.7   160 167.6   225   258 275.8   301   304   318   350   351 
    1     2     2     1     1     3     1     1     1     1     1 
  360   400   440   460   472 
    2     1     1     1     1 
> print(summary(mpg))  #在with作用范围之外,无法使用
Error in summary(mpg) : object 'mpg' not found

实例标识符/行名

在R中, 实例标识符(case identifier) 可通过数据框操作函数中的rowname 选项指定。 例如, 语句:

patientdata <- data.frame(patientID, age, diabetes, status, row.names=patientID)

3.5 因子

如你所见, 变量可归结为名义型、 有序型或连续型变量。 名义型变量是没有顺序之分的类别变量。
有序型变量 表示一种顺序关系, 而非数量关系。
类别(名义型) 变量和有序类别(有序型) 变量在R中称为因子(factor)。 因子在R中非常重要, 因为它决定了数据的分析方式以及如何进行视觉呈现。
函数factor() 以一个整数向量的形式存储类别值,要表示有序型变量, 需要为函数factor()指定参数ordered=TRUE

> status <- c("Poor", "Improved", "Excellent", "Poor")
> status_order <- factor(status, order=TRUE, 
+                        levels=c("Poor", "Improved", "Excellent") )
> status_label <- factor(status, order=TRUE, 
+                        levels=c("Poor", "Improved", "Excellent"),
+                        labels = c("1", "2", "3"))
> print(status)
[1] "Poor"      "Improved"  "Excellent" "Poor"     
> print(status_order)
[1] Poor      Improved  Excellent Poor     
Levels: Poor < Improved < Excellent
> print(status_label)
[1] 1 2 3 1
Levels: 1 < 2 < 3

3.6 列表

列表(list) 是R的数据类型中最为复杂的一种。
一般来说, 列表就是一些对象(或成分, component) 的有序集合
列表允许你整合若干(可能无关的) 对象到单个对象名下。
可以使用函数list()创建列表:

mylist <- list(object1, object2, ...)

其中的对象可以是目前为止讲到的任何结构。 你还可以为列表中的对象命名:

mylist <- list(name1=object1, name2=object2, ...)

举个例子:

> mylist <- list(
+   a = 12,
+   b = c("apple", "banana", "egg"),
+   d = matrix(c(1:6)),
+   c = data.frame(one = c(1:6), two = c(letters[1:6]), three =c(LETTERS[1:6]) )
+ )
> print(mylist)
$a
[1] 12

$b
[1] "apple"  "banana" "egg"   

$d
     [,1]
[1,]    1
[2,]    2
[3,]    3
[4,]    4
[5,]    5
[6,]    6

$c
  one two three
1   1   a     A
2   2   b     B
3   3   c     C
4   4   d     D
5   5   e     E
6   6   f     F

书中的一些注意事项

上一篇 下一篇

猜你喜欢

热点阅读