R 在数据框的某些列上使用带apply的t.test

R 在数据框的某些列上使用带apply的t.test,r,R,我试图为数据帧中的某些特定列计算p值 df <- data.frame( expa_1=sample(c(rnorm(40,5,1) + 30)), expa_2=sample(c(rnorm(40,5,1) + 30)), expa_3=sample(c(rnorm(40,5,1) + 30)), expb_1=sample(c(rnorm(40,15,1) + 30)), expb_2=sample(c(rnorm(40,15,1) + 30)), expb_3

我试图为数据帧中的某些特定列计算p值

df <- data.frame(
  expa_1=sample(c(rnorm(40,5,1) + 30)),
  expa_2=sample(c(rnorm(40,5,1) + 30)),
  expa_3=sample(c(rnorm(40,5,1) + 30)),
  expb_1=sample(c(rnorm(40,15,1) + 30)),
  expb_2=sample(c(rnorm(40,15,1) + 30)),
  expb_3=sample(c(rnorm(40,15,1) + 30)))
apply(df,1,function(x) t.test(x[1:3],x[4:6])$p.value)
df你可以试试

 apply(df[-1], 1, function(x) t.test(x[1:3], x[4:6])$p.value)
第一列是字符/因子。当您执行
apply
时,它将转换为
matrix
,值将转换为“character”,因为“matrix”只能包含一个类

比如说

 apply(df,1,function(x) x[2:4])[1:3]
#[1] "34.33018" "34.93256" "34.74045"

谢谢,转换成矩阵的信息是我需要了解的。。。我已经帮自己删除了其他专栏,但不明白为什么。。。
 apply(df,1,function(x) x[2:4])[1:3]
#[1] "34.33018" "34.93256" "34.74045"