有没有办法在对象中自动粘贴列名?

Is there a way to paste automatically a column name in an object?

我有 2 个 data.frame 有很多列。

我想获取每列的一些信息(我在这 2 个 data.frame 之间进行排列测试,例如对每列 this),所以我必须使用列的名称或编号在我的脚本中的对象(例如 object <-data_frame_n$colomn_name_n)中。

有没有我的剧本:

   quizz <- data_frame_1$colomn_name_1
   control <- data_frame_2$colomn_name_1
   obsdiff <- mean(quizz)-mean(control)

   N <- 12
   avgdiff <- replicate(1000, {
     all <- sample(c(control,quizz))
     newcontrols <- all[1:N]
     newquizz <- all[(N+1):(2*N)]
     return(mean(newquizz) - mean(newcontrols))
   })
   hist(avgdiff)
   abline(v=obsdiff, col="red", lwd=2)

   # the proportion of permutations with larger difference
   (sum(abs(avgdiff) > abs(obsdiff)) + 1) / (length(avgdiff) + 1)

好吧,为了获得我所有的值,我通过手动更改列的名称或编号来为每一列添加脚本(例如,对于第一个值:

 quizz <- data_frame_1$colomn_name_1
 control <- data_frame_2$colomn_name_1
 ...

我午餐脚本,我写了获得的值;

我更改的第二个值:

  quizz <- data_frame_1$colomn_name_2
  control <- data_frame_2$colomn_name_2
  ...

我吃脚本,我写了获得的值...等)。

那么,有没有办法 replace/paste 自动从对象中的 data.frame 获取列名? 更好的是,有没有办法替换它并获得包含所有结果的向量?

谢谢开导!

您可以使用

colnames(df)

获取所有列名和

df[, "column1"] # equivalent to df$column1 

获取专栏。所以你可以有类似

的东西
columns <- colnames(df)
for (col in columns) {
    # do something with df[, col]
}

我想剩下的取决于你想做什么。