2

我有以下示例数据框 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)

但是,当我运行它时,我会得到我怀疑是列表索引的整数输出。如何在 fx 中获得实际的分组项,在这种情况下是“a”和“b”?提前非常感谢。

4

2 回答 2

4

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

因素不是字符。它们是整数代码,通常表现得像整数代码。

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

于 2012-05-12T04:58:17.563 回答
1

如果你想做的每件事都是打印,你应该使用 d_ply。在 ddply (d_ply) 中,传递给函数(此处为 fx)的实际参数是 data.frame(x data.frame 的子集),因此您应该修改 fx 函数。

f.x <- function(x) cat(x[1,"id"],"\n")
d_ply(x,.(id),f.x)
于 2012-05-12T06:56:24.537 回答