2

R の 2 つのデータフレーム間で列単位の ttest を実行したいと考えttest(df1$col1,df2$col1)ていttest(df1$col2,df2$col2)ます。何かのようなもの:mapplyMap

mapply(t.test,tnav_DJF_histo.csv[,-1],tnav_DJF.csv[,-1])

完全に機能しますが、df 列の 1 つに NA がある場合、次のエラーで失敗します。

Error in t.test.default(dots[[1L]][[1L]], dots[[2L]][[1L]]) : 
  not enough 'y' observations

na.rm質問:ジョブを完了するためにどのように使用できますか? たとえば、tnav_DJF.csv[,-1] の列に Nas があり、tnav_DJF_histo.csv[,-1] に NAs がないmapply場合、これらの列の分析を無視またはスキップするように指示するにはどうすればよいですか?

どうもありがとう。

aez。

4

2 に答える 2

0

次のようなことができますか

t.test2 <- function(col1, col2){
  df <- complete.cases(cbind(col1, col2))
  if(nrow(df) < 3){return(NA)}
  t.test(df[, 1], df[, 2], na.rm = TRUE)
  }
mapply(t.test2, csv1[, -1], csv2[, -2])
于 2015-02-22T22:01:59.447 に答える