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 に答える