R 从ddply函数中获取分组项?

R 从ddply函数中获取分组项?,r,plyr,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") } 然而,当我运行这个程序时,我会得到整数输出,我怀疑这些输出是列表的索引。如何获得f.x中的实际分组项,在这种情况下是“a”和“b”? 提前多谢。千万不要因为变量看起来像一堆字符而误以为它实际上只是一堆字符 因素不是人物。它们是整数代码,通常表现为整数代码 使用as.charac

我有下面的示例数据帧x

id val
a 1
a 2
a 3
b 2
b 4
b 9
我有一个简单的函数,可以在执行SAC时应用。大概

f.x <- function(x){
 cat(x$id,"\n")
}
然而,当我运行这个程序时,我会得到整数输出,我怀疑这些输出是列表的索引。如何获得f.x中的实际分组项,在这种情况下是“a”和“b”?
提前多谢。

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

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


使用as.character()将值强制为character。

如果要执行的每一项操作都是打印,则应使用d\u 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)
f.x
f.x <- function(x) cat(x[1,"id"],"\n")
d_ply(x,.(id),f.x)