R语言 把数据框架转换为data.table
在这篇文章中,我们将讨论如何在R编程语言中把数据框架转换为data.table。data.table是一个R包,它提供了数据框架的增强版本。data.table的特点。
- data.table不设置或使用行名
- 行号用”: “打印,以提高可读性
- 与数据框架不同,在data.table中,字符类型的列默认不会被转换为因子。
方法1:使用setDT()方法
虽然数据框架可以使用基本的R包,但data.table对象是data.table包的一部分,需要在工作空间中安装。setDT()方法可以用来将数据框架或列表强制到data.table中,在这里对原始数据框架进行转换。修改是通过对原始数据结构的引用进行的。
语法: setDT(x)
参数:
- x : 有名或无名的列表、数据框或数据表。
例子 1 :
输出
所有存储在数据框架中的缺失和不确定的值也会保留在data.table中。行名被重新分配为以整数值开始的标识符,从1开始直到数据框架中的行数。data.table库还提供了其他函数来验证R对象是否是一个data.table,使用is.data.table(data_frame)。如果指定的参数是data.table,它返回true,否则返回false。
例2 :
输出
解释: 原始数据框架被存储为data.frame对象,然后使用setDT方法返回相同的数据框架,并在开头添加行号,行号标识符后面是冒号。缺少的值,也就是NA,将按原样返回。由于对数据框架进行了修改,当我们使用is.data.table()检查它是否是一个数据表时,它会返回逻辑TRUE值。
方法2:使用as.data.table()方法
as.data.table()方法可以用来将数据框架或列表强制转换为data.table,如果指定的对象原本不是data.table,并且转换是可能的。不会对原始数据框架进行更改,因此,它会创建一个基础对象的副本。
语法: as.data.table(x,keep.rownames=FALSE)
参数:
- x : 一个已命名或未命名的列表、数据框或数据表。
- keep.rownames: 默认情况下。为假。对于data.frame,TRUE保留data.frame的行名在一个新的列rn下。 keep.rownames = “id “命名列 “id”。
例子
输出
解释: 原始数据框架中的每一行都有一个行名。当数据框架被转换为数据表时,行名形成一个单独的列 “rn”,并且每一行都由行号标识符和冒号引导。然而,这些变化并没有在原始数据框中进行。因此,当我们将is.data.table()方法应用于原始数据框架时,它返回FALSE。相反,如果我们将此方法应用于as.data.table()方法的结果,我们会得到TRUE值。