(ヘルプを反映するように編集されています...書式設定はうまくいきませんが、フィードバックに感謝します)
私は、十分に簡単な問題であると思われるものに少しこだわっています。R にロードした複数の異なるデータ セットがあり、それらはすべて異なる数の観測値を持っていますが、すべて「A1」、「A2」、および「A3」という名前の 2 つの変数を持っています。A3にゼロより大きい値が含まれている場合は「A1」に保持されている値を含み、A3にゼロ未満の値が含まれている場合は「A2」に保持されている値を含む3つのデータフレームのそれぞれに新しい変数を作成したいと考えています。単純に思えますよね?
このコードでの私の試みは、この偽のデータを使用しています:
set.seed(1)
A1=seq(1,100,length=100)
A2=seq(-100,-1,length=100)
A3=runif(100,-1,1)
df1=cbind(A1,A2,A3)
A3=runif(100,-1,1)
df2=cbind(A1,A2,A3)
Rには複数のデータフレームで同じ名前の変数を作成する機能があることは約1000パーセント確信していますが、lapplyでこれを試してみました:
mylist=list(df1,df2)
lapply(mylist,function(x){
x$newVar=x$A1
x$newVar[x$A3>0]=x$A2[x$A3>0]
return(x)
})
しかし、ラップリー ループを抜けると、newVar は利用できません。たとえば、新しい変数の平均を求める場合: mean(df1$newVar) [1] NA 警告メッセージ: In mean.default(df1$newVar) : 引数は数値または論理ではありません: NA を返す
どんな助けでも大歓迎です。
ありがとうございました。