2016-10-18 13 views
2

たとえば、確率テーブルをRのdata.frameに変換するこの関数を記述しようとしています。引数 "na"を最初のcolnameにします。このデータフレーム。私は(sk_table、 "AGE_GROUP")関数を呼び出すと仮定関数を書くときに文字列/文字引数を渡すR

prop_table_to_df <- function(table, nm){ 
    data.frame(nm = factor(names(table)), Percentage = table) 
    } 

は アウト期待される出力は、この

 age_group Percentage 
(15,20] (15,20] 0.4518717 
(20,25] (20,25] 0.3118461 
(25,30] (25,30] 0.2136201 
(30,35] (30,35] 0.1863965 

あるしかし、その代わりに、出力は、私はこの問題を解決するにはどうすればよい

   nm Percentage 
(15,20] (15,20] 0.4518717 
(20,25] (20,25] 0.3118461 
(25,30] (25,30] 0.2136201 
(30,35] (30,35] 0.1863965 

です?明らかに、この状況では、Rは関数を書くときに文字列または文字を引数として受け入れません。助けてくれてありがとう。

+1

「setnames」を試すことができます。 'age_group 'は関数に渡す文字列です。' setnames(data.frame(factor(names(table))、table)、c( "age_group"、 "Percentage")) ' – SymbolixAU

+0

@SymbolixAU 'setnames'はdata.tableです。ベースは 'setNames'です。 'set_names'はmatrittr/purrrです。 – alistaire

+0

@alistaire - はい、そうです - 毎日私が使用する 'data.table'を使用します。それは基本として数えられます:〜) – SymbolixAU

答えて

0

data.frameを作成した後に名前を変更するには、別の行を追加する必要があります。私は以下のようにして、新しいdfの最初の列を関数入力nmに名前を変更しました。

prop_table_to_df <- function(table, nm){ 
    df = data.frame(nm = factor(names(table)), Percentage = table) 
    colnames(df)[1] = nm #rename first column to value of nm 
    return(df) 
} 
+0

これはまさに私がやったことです!ありがとうございました!私はちょうどdata.table方法なしでそれを書くためのより直接的な方法があるのだろうかと思う。 – Viveme679

関連する問題