有没有办法在 .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/