有没有办法在 .id 的结果中为通常名为 ldply 的列分配自定义名称?

> ldply(setNames(1:3, 1:3), function(i) data.frame(j=1/i))
  .id         j
1   1 1.0000000
2   2 0.5000000
3   3 0.3333333

我知道我可以对结果调用 rename,但我想在一次调用中完成。有什么建议么?

请注意 adply 也有类似的问题:
> adply(as.array(setNames(1:3, 1:3)), 1, function(i) data.frame(j=1/i))
  X1         j
1  1 1.0000000
2  2 0.5000000
3  3 0.3333333

另一个 related question 解决了重命名“数据”列的问题,但答案也未能为 .id 列提供解决方案。

最佳答案

使用 setNames 似乎很舒服,因此您可以将“j”和“newname”赋值移动到方便的包装器中。

setNames( ldply(setNames(1:3, 1:3), function(i) data.frame(1/i)) , c("newname", "j") )
  newname         j
1       1 1.0000000
2       2 0.5000000
3       3 0.3333333

关于重命名 ldply 中的 .id 列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15553036/

10-12 03:58
查看更多