2016-05-03 9 views
1

私は次のコードを使って対立遺伝子の頻度を計算する3つの集団を持っています。私は私がエラーを取得しないように、対立遺伝子頻度 私の適用関数にna.rm = Tを入れる場所

M=matrix(NA,nrow(mydata),3,) #3 populations 
colnames(M)=c("pop1","pop2","pop3") 

を保存し、その後、私はna.rm = Tを置く

#population 1 
M[,1]=(apply(mydata[,which(colnames(mydata)=="pop1")], 
1,function(x) sum(x)/(length(x)*2)) 

を使用して、各集団について計算するのに行列を作っています私のデータのNAsに?私は

M[,1]=(apply(mydata,na.rm=T[,which(colnames(mydata)=="pop1")], 
1,function(x) sum(x)/(length(x)*2)) 

を試してみましたが、私はsum()機能が

だから

sum 
function (..., na.rm = FALSE) .Primitive("sum") 

を参照してくださいna.rm引数を取るものですバックのエラー(次元の数が正しくありません)

+2

'sum(x、na.rm = T)'の中で試してください。これは 'na.rm'引数を持つ唯一の関数です。しかし、私はあなたの 'apply(...) 'に他の問題があると思います – SymbolixAU

+0

ありがとう、私はそれを試してエラーを返さなかった、今すぐデータセット全体を実行し、それがどう行くかを見てください 編集 - Symbolix、完璧に働いた:) –

+0

あなたは大歓迎です;私は答えとしてそれを書いた。 – SymbolixAU

答えて

1

を取得しますsum(x, na.rm=T)機能の中にna.rm = TRUEが必要です。

関連する問題