library(data.table)
library(magrittr)

# 有10k列 * 1k欄數值資料及額外一欄ID_REF字串
# 第k多對第1列做pearson correlation
# 最後以 ID_REF, r, p-value 集合成輸出結果

# 製做假資料
d <- 
  data.frame(
    `ID_REF` = sprintf("%06.0f", 1:10000)
  )
d <- cbind(d, matrix(rnorm(10000 * 1000), nrow = 10000))
str(d)
# 'data.frame':	10000 obs. of  1001 variables:
#  $ ID_REF: chr  "000001" "000002" "000003" "000004" ...
#  $ 1     : num  -0.0283 -0.023 -1.3558 -0.9225 -0.7895 ...
#  $ 2     : num  0.984 0.348 0.516 -1.231 -0.898 ...
#  $ 3     : num  0.271 2.368 0.501 -1.217 -1.95 ...
# ...

mat <- as.matrix(d[, -1])
r.val <- vector("double", 10000)
t.val <- vector("double", 10000)
p.val <- vector("double", 10000)
  
# for loop
for(i in 1:nrow(d)){
  rres <- cor.test(mat[1, ], mat[i, ])
  r.val[i] <- rres$estimate
  t.val[i] <- rres$statistic
  p.val[i] <- rres$p.value
}

data.frame(`ID_REF` = d$ID_REF, r.val, t.val, p.val)
#     ID_REF         r.val        t.val      p.val
# 1   000001  1.0000000000          Inf 0.00000000
# 2   000002  0.0569113516  1.799910620 0.07217697
# 3   000003 -0.0233089732 -0.736187996 0.46178947
# 4   000004  0.0115357485  0.364269037 0.71573436
# ...