从ddply函数中获取分组术语?

时间:2012-05-12 04:44:08

标签: r plyr

我有以下示例数据框x

id val
a 1
a 2
a 3
b 2
b 4
b 9

我有一个简单的功能,我在做SAC时应用。像,

f.x <- function(x){
 cat(x$id,"\n")
}

请注意,我要做的就是打印分组术语。使用ddply调用此函数,如下所示

ddply(x,.(id),f.x)

然而,当我运行这个时,我得到整数输出,我怀疑它是列表的索引。如何在f.x中获得实际的分组术语,在本例中为'a'和&amp; 'B'? 非常感谢。

2 个答案:

答案 0 :(得分:4)

永远不要误以为只是因为变量看起来像一堆字符,它实际上只是一堆字符。

因素不是人物。它们是整数代码,通常表现为整数代码。

使用as.character()将值强制转换为字符。

答案 1 :(得分:1)

如果你要做的每件事都是打印的,你应该使用d_ply。 在ddply(d_ply)中传递给函数的实际参数(这里是f.x)是data.frame(x data.frame的子集),所以你应该修改你的f.x函数。

f.x <- function(x) cat(x[1,"id"],"\n")
d_ply(x,.(id),f.x)