R data.table行上的隐藏属性
是否可以将metainfo添加到data.table中的每一行,并按这样的方式进行筛选?如果是这样,我该怎么做R data.table行上的隐藏属性,r,data.table,R,Data.table,是否可以将metainfo添加到data.table中的每一行,并按这样的方式进行筛选?如果是这样,我该怎么做 为了简单起见,假设我有一个包含两列的数据表,a和B,其中B包含数字数据。我需要能够将(部分、全部、仅一行等)标记为FIX,执行数学运算、联接等,然后将它们标记为UNFIX,以便在执行此类操作时,结果不受metainfo的影响,如果它们只是另一列而不是隐藏属性,则可能会发生这种情况。R支持所有对象上的属性。因此,您可以为列表分配属性,尽管这可能不是最佳方法-创建和删除新列可能是最佳解决方
为了简单起见,假设我有一个包含两列的数据表,a和B,其中B包含数字数据。我需要能够将(部分、全部、仅一行等)标记为
FIX
,执行数学运算、联接等,然后将它们标记为UNFIX
,以便在执行此类操作时,结果不受metainfo的影响,如果它们只是另一列而不是隐藏属性,则可能会发生这种情况。R支持所有对象上的属性。因此,您可以为列表分配属性,尽管这可能不是最佳方法-创建和删除新列可能是最佳解决方案。我要注意的是,如果在列表上执行任何操作,除非将属性复制到新对象,否则将丢失属性。下面是一个简单的例子:
df <- data.frame(A = c(1, 2, 3),
B = c(1, 2, 3))
attr(df, "isFixed") <- c("unfixed","unfixed","unfixed")
attributes(df)$isFixed
attributes(df)$isFixed[1] <- "fixed"
attributes(df)$isFixed
df我不明白你为什么不把它们列成正确的列。你能提供一个使它更清楚吗?如果你想的话,你可以使用一个单独的向量。e、 g.fix.rows=c(T,F,F)
或fix.rows=c(1,17,23)
。然后使用以下命令执行数据表操作:dt[fix.rows,V1:=x]
。但我看不到任何东西也不能仅仅是用额外的东西来实现column@MrFlick例如,我有一组函数,它们使用intersect在两个数据表之间执行联接操作,因为列数将来可能会增加:sk=intersect(名称(dt1),名称(dt2))sk=sk[!sk%in%“值”]dt1[dt2,值:=VALUE+i.VALUE,on=sk]