如何更改“。” plyr 生成名称使用的分隔符
How to change the "." separator used by plyr generate names
用于拆分 data.frame 函数族中的 d_ply 的变量随后使用分隔符“.”合并。在 dlply 的情况下为结果列表生成名称,例如
library(plyr)
res <- data.frame(id1= rep("a.x",3),id2=c("a","b","c"),
val = c(1,2,3),stringsAsFactors = FALSE)
这给出了 data.frame
> res
id1 id2 val
1 a.x a 1
2 a.x b 2
3 a.x c 3
然后当运行 dlply 生成以下名字
> names(plyr::dlply(res, .(id1, id2), function(x){x$val}))
[1] "a.x.a" "a.x.b" "a.x.c"
有没有办法将 plyr 使用的分隔符更改为例如“|” ?
我确实得出了以下解决方案:
> names(xx) <- apply(attributes(xx)$split_labels,1 ,paste , collapse="|")
> names(xx)
[1] "a.x|a" "a.x|b" "a.x|c"
用于拆分 data.frame 函数族中的 d_ply 的变量随后使用分隔符“.”合并。在 dlply 的情况下为结果列表生成名称,例如
library(plyr)
res <- data.frame(id1= rep("a.x",3),id2=c("a","b","c"),
val = c(1,2,3),stringsAsFactors = FALSE)
这给出了 data.frame
> res
id1 id2 val
1 a.x a 1
2 a.x b 2
3 a.x c 3
然后当运行 dlply 生成以下名字
> names(plyr::dlply(res, .(id1, id2), function(x){x$val}))
[1] "a.x.a" "a.x.b" "a.x.c"
有没有办法将 plyr 使用的分隔符更改为例如“|” ?
我确实得出了以下解决方案:
> names(xx) <- apply(attributes(xx)$split_labels,1 ,paste , collapse="|")
> names(xx)
[1] "a.x|a" "a.x|b" "a.x|c"