Вы можете использовать функцию применения
dta=data.frame(XC,XN,CN,tissue)
res=data.frame(apply(dta[,1:3],2,function(z)(unlist(t.test(z~dta$tissue))[1:8])),stringsAsFactors = F)
res[]=sapply(res,as.numeric)
round(res,6)
У вас будет что-то вроде:
# > round(res,6)
# XC XN CN
# statistic.t -109.63424 -10.842582 -45.532057
# parameter.df 101.66755 105.801883 103.753688
# p.value 0.00000 0.000000 0.000000
# conf.int1 -20.25112 -2.304988 -10.219741
# conf.int2 -19.53135 -1.592335 -9.366679
# estimate.mean in group Ent 20.16557 10.044373 20.172782
# estimate.mean in group Stom 40.05680 11.993035 29.965992
# null.value.difference in means 0.00000 0.000000 0.000000