スタータでは、codebookout
コマンドを使用して、既存のデータセットのすべての変数の名前、ラベル、および記憶域タイプを対応する値と値ラベルとともに保存するExcelワークブックを作成できます。R:Stataのcodebookoutコマンドに相当するものはありますか?
これまでのところ、codebook
という機能を持つmemisc
ライブラリが見つかりましたが、Stataと同じことはしません。
例えば、Stataのでは、コードブックの出力は(下記参照 - これは私が欲しいものです)...このようになります
Variable Name Variable Label Answer Label Answer Code Variable Type
hhid hhid Open ended String
inter_month inter_month Open ended long
year year Open ended long
org_unit org_unit long
Balaka 1
Blantyre 2
Chikwawa 3
Chiradzulu 4
データフレーム内の各列を生成するために評価され、すなわち、 5つの別の列の値:
-
列の名前です
- 変数名 列の名前 です
- 変数ラベル
- Answer 列の一意の値であるラベル。一意の値がない場合は、Answerラベルの各カテゴリへの数値割り当てであるAnswer Code
- となります。回答ラベルがカテゴリでない場合は空白。
- 変数タイプ:
:Warning messages: 1: In `[<-.factor`(`*tmp*`, ri, value = 1:3) : invalid factor level, NA generated 2: In `[<-.factor`(`*tmp*`, ri, value = 1:2) : invalid factor level, NA generated
CreateCodebook <- function(dF){ numbercols <- length(colnames(dF)) table <- data.frame() for (i in 1:length(colnames(dF))){ AnswerCode <- if (sapply(dF, is.factor)[i]) 1:nrow(unique(dF[i])) else "" AnswerLabel <- if (sapply(dF, is.factor)[i]) unique(dF[order(dF[i]),][i]) else "Open ended" VariableName <- if (length(AnswerCode) - 1 > 1) c(colnames(dF)[i], rep("",length(AnswerCode) - 1)) else colnames(dF)[i] VariableLabel <- if (length(AnswerCode) - 1 > 1) c(colnames(dF)[i], rep("",length(AnswerCode) - 1)) else colnames(dF)[i] VariableType <- if (length(AnswerCode) - 1 > 1) c(sapply(dF, class)[i], rep("",length(AnswerCode) - 1)) else sapply(dF, class)[i] df = data.frame(VariableName, VariableLabel, AnswerLabel, AnswerCode, VariableType) names(df) <- c("Variable Name", "Variable Label", "Variable Type", "Answer Code", "Answer Label") table <- rbind(table, df) } return(table) }
は、残念ながら、私は次の警告メッセージを取得しています。int、strの、長い(日)...ここで
は私の試みです
私が出力した結果は、回答コードのラベルが乱雑になりました。
Variable Name Variable Label Variable Type Answer Code Answer Label
hhid hhid hhid Open ended character
month month month Open ended integer
year year year Open ended integer
org_unit org_unit org_unit Open ended character
v000 v000 v000 Open ended character
v001 v001 v001 Open ended integer
v002 v002 v002 Open ended integer
v003 v003 v003 Open ended integer
v005 v005 v005 Open ended integer
v006 v006 v006 Open ended integer
v007 v007 v007 Open ended integer
v021 v021 v021 Open ended numeric
2285 v024 v024 central <NA> factor
1 north <NA>
7119 south <NA>
11 v025 v025 rural <NA> factor
1048 v025 v025 urban <NA> factor
district_name district_name district_name Open ended character
coords_x1 coords_x1 coords_x1 Open ended numeric
coords_x2 coords_x2 coords_x2 Open ended numeric
itn_color itn_color itn_color Open ended numeric
piped piped piped Open ended numeric
sanit sanit sanit Open ended numeric
sanit_cd sanit_cd sanit_cd Open ended numeric
water water water Open ended numeric
はあなたがこれまでのところ、この質問に答えることを試みた方法を表示することができますか?あなたはいくつかのコードを書くことができます...(そうでなければ、これは "オフサイトのリソース"(トピック外)か "私のためのコードを書く"(トピック外)...)です。 –
私は基本的にDataFrame (それはどんなデータフレームでもかまいません)、私はそのdfにコードブックを適用しました。しかし、出力は私が望むものではありません。 –
私はあまりにも素早く読んで、あなたの質問の元のバージョンに 'memisc :: codebook'と言っているのを見たことがありません。それにもかかわらず、私はあなたが基本的にカスタマイズされた/非常に特定の出力を必要としているので、この質問はそれに適していない可能性があります(あなたがもっと進歩を遂げることができない場合) –