将属性设置为R中的多个data.table列
这应该是件容易的事,但我似乎做不好 我有一个数据表,有N列(假设N=40K)和两个长度相同的字符向量(即labelvector和unitvector),我想将属性“label”和“units”添加到data.table的每一列,并添加到该列的相关向量所指示的值 这两个向量也使用data.table列名命名 我的工作围绕着对所有列使用setattr,或者将.SD表示法与lappy结合使用,当我有大表但没有任何重大成功时,我将其作为主要工作 后者失败,因为我无法从lappy中访问传递给函数调用的列的名称,以便通过引用设置属性 我可以创建一个通过引用设置属性的函数(在函数体中具有:=data.table调用)或一个设置属性的*apply/for循环,但两者都需要花费大量时间 你认为这可以做得更快或更优雅吗 *编辑***** 例如: 该表有4列:Age、Hgt、Wgt和S labelvector有4个值:“年龄”、“身高”、“体重”和“性别” unitvecor还有4个值:“年”、“厘米”、“千克”和“NA” labelvector和unitvector值都使用表列名命名 因此,目标是为数据表设置: 列年龄,标签:“年龄”,单位“年” Hgt列,标签:“高度”,单位“厘米” Wgt列,标签:“重量”,单位为“千克” S列,标签:“性别”,单位NA将属性设置为R中的多个data.table列,r,data.table,R,Data.table,这应该是件容易的事,但我似乎做不好 我有一个数据表,有N列(假设N=40K)和两个长度相同的字符向量(即labelvector和unitvector),我想将属性“label”和“units”添加到data.table的每一列,并添加到该列的相关向量所指示的值 这两个向量也使用data.table列名命名 我的工作围绕着对所有列使用setattr,或者将.SD表示法与lappy结合使用,当我有大表但没有任何重大成功时,我将其作为主要工作 后者失败,因为我无法从lappy中访问传递给函数调用的列的
必须将其推广到数万列的data.table。这将解决您的问题
attr(temp_data, "names") <- c("label", "units")
attr(临时数据,“名称”)我相信这就是你要找的
mapply(setattr,x=temp_数据,name=“names”,value=names(temp_数据),
简化=错误)
data.table(或frame)的每一列都应根据两个单独向量的值具有不同的标签和单位。我将尝试提供上面的一个例子。你能解释一下你是如何做到这一点的吗?我也有同样的问题,我希望以一种高效的方式跨多个列分配列属性。