私はデータフレーム内の列を反復処理しています(コードの後のデータテーブルもあります)。 SQLでは、私は、各変数のために何をしたいのかの同等は次のようになります。data.table RのSELECT GROUP BY列インデックス?
SELECT COUNT(VAR) FROM df GROUP BY MonthYear
でも、私はいくつかのトラブルRでのことをやってを抱えています。私が持っているファイルは構造が貧弱なので、いくつかの種類がありますdplyr
+ data.table
回避策私は機能を得ようとしています。
library(dplyr)
library(data.table)
df <- data.frame(MonthYear = c("JAN15", "JAN15", "FEB15", "MAR15", "MAR15"), V1 = c(1,1,0,0,0), V2 = c(0,1,1,1,0), V3 = c(0,0,0,1,1), V4 = c(0,1,1,1,1))
for(colNum in 2:length(names(df))){
colName <- names(df)[colNum]
filtered <- select(df, c(1, colNum))
filtered_dt <- data.table(filtered, key = "MonthYear")
trimmed <- filtered_dt[, count = sum(colName), by = key(filtered_dt)]
}
これはで、エラー結果:
trimmed <- filtered_dt[, count = sum(V1), by = key(filtered_dt)]
私はただの文字を取得する方法がわからない:
Error in sum(column) : invalid 'type' (character) of argument
はV1
のために、私はtrimmed
割り当てがのようになります知っていますその構文に合うように"V1"
という値を設定します。
あなたはタイプミスがあります。 '。()'に 'count = sum(colName)'をラップします。これはよくある質問です:https://rawgit.com/wiki/Rdatatable/data.table/vignettes/datatable-faq.html#unused-arguments-mysum-sumv唯一の問題であるかどうかは不明です。 – Frank
それでも私の質問には答えられません。私は同じエラーを取得します。 '文字' '" V1 "'値が ''整えられた ''行で動作するようにするにはどうすればいいですか? – blacksite
申し訳ありませんが、私はあなたの質問に答えたことを示唆することを意味しませんでした。 – Frank