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

时间:2017-04-28 00:18:47

标签: r database dataframe replace paste

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

我想在每列中获取一些信息(我在这两个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
  ...

我在剧本午餐,我写了获得的价值......等等)。

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

感谢您的启发!

1 个答案:

答案 0 :(得分:1)

您可以使用

colnames(df)

获取所有列名称和

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

获取专栏。所以你可以拥有像

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

我猜其余部分取决于你想做什么。