2012-05-12 41 views
2

我有下面的例子中數據幀x從ddply函數中獲取分組術語?

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'&'b'? 非常感謝。

回答

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) 
4

不要被愚蠢的想到,因爲一個變量看起來像一堆字符,它真的只是一堆字符。

因素不是字符。它們是整數代碼,並且通常表現爲整數代碼。

使用as.character()將值強制轉換爲字符。