私はこのトピックについて尋ねられたさまざまな質問を見てきましたが、今のところ私が望むものを得るのを助けてくれませんでした。R:差分を計算して新しい変数に格納するためのループを書く
私は2つの変数(standardized_'estestname ')と' predicted_standardized_'estestname 'という2つの変数を持つデータフレームを持っています。今、私は2つの違いを計算し、それを 'testname'_finalscoreという新しい変数に保存したいと思います。
私は約19種類のテストがあるので、私はこれをRのforループでやりたいのですが、私はこの種のループを書くのが初めてです。
私は別のテストのすべての名前と、testlistというのがあります。このオーバー
testlist <- c("vlgt_ltfr", "vlgt_recog",
"vlgt_imrec", "wms_imrec",
"wms_delrec", "fluency_dier",
"fluency_beroep", "tapdom",
"tapndom", "traila", "trailb",
"erik_congruent", "erik_percincong",
"erik_incongruent", "stroop_baseline",
"stroop_interference", "subrs", "tmt_interference")
、私は標準化されたとpredicted_standardizedスコアを計算するためのループを書かれています。
例:この後
for(test in testlist){
patdat[,paste0('standardized_',test)] <- (patdat[,test] - tempmean)/tempsd
patdat[,paste0('predicted_standardized_',test)] <- coef(mymod)[1] + coef(mymod)[2]*patdat[,'p_age'] + coef(mymod)[3]*patdat[,'nlviq']
}
が、私は違いを計算し、新しい変数に格納しを試みるする(動作しない)異なるループを作成しました:
for(test in testlist){
normdata[,paste0(test,'_finalscore')] <- (normdata[,paste0('standardized_', test)] - normdata[,paste0('predicted_standardized_', test)])
}
for(test in testlist){
normdata[,paste0(test, '_finalscore')] <- normdata[get('standardized_',test)] - normdata[get('predicted_standardized_'), test]
}
for(test in testlist){
normdata[,paste0(test, '_finalscore')] <- (normdata['standardized_',test] - normdata['predicted_standardized_', test])
}
私は 'testname'_finalscoreで変数を取得しますが、空です。私は間違ってインデックスを作成していると私はこの問題を解決するために使用できる関数があるかもしれないと思う - しかし、私はまだそれを見つけていない。事前に
> normdata$standardized_subrs - normdata$predicted_standardized_subrs
[1] 0.002764 0.436435 0.676208 0.598205 -0.217296 -1.796589
[7] -0.002633 0.300938 -0.022676 0.262987 -0.652819 -0.132400
ありがとう:私は取得したいどのようなデータ
> normdata$standardized_subrs
[1] -0.45551 0.61058 0.18414 0.18414 -0.13568 -1.30838 0.39736
[8] 0.71719 -0.13568 -0.13568 0.29075 0.18414 1.99649 -1.62821
> normdata$predicted_standardized_subrs
[1] -0.458274 0.174143 -0.492066 -0.414063 0.081612 0.488208
[7] 0.399994 0.416249 -0.113008 -0.398671 0.943571 0.316543
OF
の例では、このような、しかしtestlistというのすべてのテストを探し、変数 "subrs_finalscore" です。
'normdata < - data.frame( standardized_subrsの= Cの(-0.45551、0.61058、0.18414)、 predicted_standardized_subrsの= Cの(-0.458274、0.174143、-0.492066) )。 testlist < - c( "subrs"); (テストリストのテスト){ normdata [、paste0(test、 '_ finalalscore')] < - (normdata [、paste0( 'standardized_'、test)] - normdata [、predict0standardized_ '、test] ]) } '私の側で動作します。それはあなたの上にありますか?そうでない場合は、何が問題(エラー)ですか? –
これもここで動作します!それが前になかった理由、たぶんタイプミスか何か... ...ありがとう!間違っていたことを頭に浮かべることはできませんでした。 – HannekeLettinga
あなたの例で 'standardized_subrs 'と 'predicted_standardized_subrs'の観測量は同じではありません –