大規模なデータセットの特定の値の合計数を調べようとしています。具体的には、「糖尿病」と呼ばれる新しい変数を作成したいと思います。ここに例があります:大きなデータセットで機能しない関数
Test <- data.frame(
s_1_1 = c(1223, NA, 1223, NA, NA),
s_1_2 = c(NA, 1223, NA, NA, NA),
s_1_2 = c(NA, NA, NA, NA, NA))
Disease0 <- paste("s_1_", 1:2, sep = "")
Test$Tp2Diabetes_0_0 <- apply(Test, 1, function(Db) as.integer(any(Db[Disease0] == 1223, na.rm = TRUE)))
小さなコードにこのコードを実行すると、うまく動作し、私に必要な結果が得られます。
diabetes = 1,1,1,0,0
問題は、これを500k以上のデータセットで実行していて、目的の結果が得られないということです。例えば、50万人のうち200人だけが糖尿病であることを示していますが、全体的なデータショーケースでは私は3,000に近づくべきであることを示しています。私はここで何が起こっているのか、私が間違っているのか理解していません。
を多分あなたのデータセットを確認してください。あなたのレコードがテキスト/文字として格納されている場合、結果が乱雑になってしまうようなものは見えません。 –
は明らかにタイプの問題です。あなたのデータ中のいくつかの1223は数字ではありません。文字列 "1223"のようないくつかの値はあなたの機能を壊します。 – fhlgood
コメントありがとうございます。これらの変数は整数として分類されます。私はすべてを数値に変換しようとしましたが、空白を取り除くだけで同じ結果が得られました。ここで何をすべきかに関する提案はありますか? 1223と1223の両方を含むコマンドを追加できますか?ありがとう! – user7777508