
数据结构
|
155
数据框中的因子
创建数据框和创建 tibble 之间存在重要差异。使用 data.frame 函数创建数据框时,R
在默认情况下会将字符值转换为因子。前面的 data.frame 示例中的 pred3 值被转换
为一个因子,但这在输出中并不明显。
但是,tibble 和 as_tibble 函数不会更改字符数据。如果你看一下 tibble 示例,
你会看到列 p3 的类型是 chr,意思是字符。
这种差异是你应该注意的。调试由这种细微差别引起的问题可能令人沮丧。
5.19 用行数据初始化数据框
5.19.1 问题
数据已经组织成行,而你需要将它们组合成一个数据框。
5.19.2 解决方案
将每一行数据存储在一个单行数据框中。然后使用 rbind 将多行结合到一个大型数据
框中:
rbind(
row1
,
row2
, ... ,
rowN
)
5.19.3 讨论
数据通常以一组观测结果的形式出现。每个观测(observation)都是一个包含多个值的
记录或元组,每个值代表一个观测变量。一个平面文件的行通常是这样的:每一行是一
条记录,每条记录包含多列,每列代表一个不同的变量(参见 4.15 节)。这些数据是以
观测
而非
变量
来组织的。换句话说,你一次只能获得一行而不是一列。
每个这样的行可能会以多种方式存储。一种显而易见的方式是把它存储为向量。如果有
纯粹的数值型(numerical)数据,可以用向量存储。
但是,许多数据集是数值、字符和分类数据的混合,在这种情况下,向量将不起作用。
我们建议将每个这样的异构行存储在一个单行数据框中。 ...