r - 将属性设置为 R 中的多个 data.table 列

标签 r data.table

这应该很简单,但我似乎做不对。

我有一个包含 N 列(假设 N=40K)和两个长度相同的字符向量(即 labelvector 和 unitvector)的数据表,我想将属性“label”和“units”添加到每一列data.table 的值到该列的相关向量指示的值。

这两个向量也使用 data.table 列名命名。

我的工作围绕着对所有列使用 setattr 或包括带有 lapply 的 .SD 表示法,当我有大表但没有取得任何重大成功时,我将其用作主要工具。

后者失败了,因为我无法访问从 lapply 中传递给函数调用的列的名称,以便通过引用设置属性。

我可以制作一个通过引用设置属性的函数(在函数体内调用 := data.table)或者一个 *apply/for 循环来设置它们,但两者都需要很多时间。

您认为这可以做得更快还是更优雅?

* 编辑*****

例子:

该表有 4 列:Age、Hgt、Wgt 和 S

labelvector 有 4 个值:“年龄”、“高度”、“体重”和“性别”。

unitvecor 也有 4 个值:"Years"、"cm"、"kg"、NA。

labelvector 和 unitvector 值均以表列名称命名。

所以目标是为数据表设置:

Age 列,标签:“Age”,单位“Years”。

Hgt 列,标签:“Height”,单位“cm”。

Wgt 列,标签:“Weight”,单位“kg”。

S 列,标签:“性别”,单位 NA。

这得泛化成一个上万列的data.table。

最佳答案

这将解决您的问题

  attr(temp_data, "names") <- c("label", "units")

temp_data 是你的数据框

关于r - 将属性设置为 R 中的多个 data.table 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25144503/

相关文章:

r - 如何在 R+Shiny 中禁用绘图单击

r - 当新列值具有不同的类时,data.table 列不会按预期更新

r - 使用分组计算过去和 future 特定事件的发生次数

r - Rstudio 版本(版本 1.3.1073) "Giant goldenrod"将 R studio 窗口移动到新显示器时出现的问题无法正确显示

c++ - 将 R 函数作为参数传递给 RCpp 函数

r - 使用存储在不同数据框中的值来改变数据框的列

r - 通过重叠时间间隔查找变量的最大值

r - 获取数据表中每一行的最后 1 个索引 (R)

r - 如何基于 data.table 中的分类变量以编程方式创建二进制列?

r - 在R中的向量中插入元素