当前位置: 首页 > 编程笔记 >

R创建一个数据表

邓季
2023-03-14
本文向大家介绍R创建一个数据表,包括了R创建一个数据表的使用技巧和注意事项,需要的朋友参考一下

示例

Adata.table是data.frame从R开始的类的增强版本。同样,它的class()属性是向量"data.table" "data.frame",在a上起作用的函数也data.frame将与data.table一起工作。有很多方法可以创建,加载或强制执行data.table。

建立

不要忘记安装和激活data.table软件包

library(data.table)

有一个同名的构造函数:

DT <- data.table(
  x = letters[1:5], 
  y = 1:5, 
  z = (1:5) > 3
)
#    x y     z
# 1: a 1 FALSE
# 2: b 2 FALSE
# 3: c 3 FALSE
# 4: d 4  TRUE
# 5: e 5  TRUE

与不同data.frame,data.table不会将字符串强制转换为因素:

sapply(DT, class)
#               x           y           z 
#     "character"   "integer"   "logical"

读入

我们可以从一个文本文件中读取:

dt <- fread("my_file.csv")

不像read.csv,fread将字符串作为字符串而不是因素来读取。

修改数据框

为了提高效率,data.table提供了一种更改data.frame或列表以进行data.table就地的方法(无需进行复制或更改其存储位置):

# example data.frame
DF <- data.frame(x = letters[1:5], y = 1:5, z = (1:5) > 3)
# modification
setDT(DF)

请注意<-,由于对象DF已就地修改,因此我们不分配结果。的类属性data.frame将保留:

sapply(DF, class)
#         x         y         z 
#  "factor" "integer" "logical"

强制对象到data.table

如果你有一个list,data.frame或者data.table,你应该使用setDT功能转换成一个data.table,因为它通过参考确实不是使副本(转换as.data.table一样)。如果您要处理大型数据集,这一点很重要。

如果您还有另一个R对象(例如矩阵),则必须使用as.data.table将其强制为data.table。

mat <- matrix(0, ncol = 10, nrow = 10)

DT <- as.data.table(mat)
# or
DT <- data.table(mat)
           

 类似资料:
  • 本文向大家介绍R创建一个空的data.frame,包括了R创建一个空的data.frame的使用技巧和注意事项,需要的朋友参考一下 示例 Adata.frame是一种特殊的列表:它是矩形。列表的每个元素(列)具有相同的长度,并且每一行都有一个“行名”。每个列都有其自己的类,但是一个列的类可以与另一列的类不同(与矩阵不同,在矩阵中,所有元素都必须具有相同的类)。 原则上,adata.frame可以没

  • 本文向大家介绍oracle创建一个数据库三步走,包括了oracle创建一个数据库三步走的使用技巧和注意事项,需要的朋友参考一下 以前开发的时候用得比较多的是mysql和sql server,oracle用的比较少,用起来比较生疏,mysql和sql server用起来比较类似,就oracle的使用方式和他们不同,oracle在创建数据库的时候要对应一个用户,数据库和用户一般一一对应,mysql和s

  • 10.3.3.为单行数据创建一个Layout 还有一个XML文件需要考虑。timeline.xml描述整个Activity的布局,我们也需要描述单行数据的显示方式——也就是屏幕上显示的单条消息,谁在什么时间说了什么。 最简单的方法是给这些行单独创建一个XML文件。同前面新建的XML文件一样,选择File→New→Android New XML File打开Android New XML File对

  • 问题内容: 我有一个具有多个列和行的数据框 df1 。简单的例子: 我想创建一个空的数据框 df2, 然后再添加带有计算结果的新列。 目前,我的代码如下所示: …添加两个新列: 有没有更好/更安全/更快的方法呢?是否可以创建一个空的数据帧df2并仅从df1复制索引? 问题答案: 这将创建一个没有列但只有一个索引的DataFrame,并且它将与df1中的索引相同。

  • windows,我想通过R直接创建Marisdb的新数据库,不同的条件对应不同的数据库,即批量创建数据库,但是RMariaDB包没有创建新数据库的函数,是直接访问已经存在的数据库的。该怎么实现呢? 已经解决,R循环生成语句,放到HeidiSQL就好了。

  • 我有一个包含18个数据帧的列表: 所有数据帧都有一个公共id列,因此很容易将它们与pd连接在一起。一次合并2个。有没有一种方法可以一次将它们连接起来,从而使dfList作为单个数据帧返回?