这与此question类似。但我需要为1000个数据帧执行此操作。
我使用以下代码创建了1000个数据框:
df <- replicate(1000, sensitivity.score, simplify = FALSE)
names(df) <- paste("score.rand", 1:length(df), sep = "")
list2env(df, envir = .GlobalEnv)
第一个数据框如下所示:
head(score.rand1)
Binomial S1 S2 S3 S4 S5 S6 S7 S8 S9
1 Astacoides betsileoensis H L L L H L <NA> L L
2 Astacoides caldwelli H L L L H L <NA> H <NA>
3 Astacoides crosnieri L L L L H L <NA> <NA> L
4 Astacoides granulimanus L L L L H L H <NA> L
5 Astacoides hobbsi H L H L H L <NA> <NA> L
6 Astacoides madagascariensis H L L L H L <NA> <NA> L
我使用以下代码创建了另外1000个数据框:
mydf <- data.frame(Binomial, S4, S5, S6)
lst <- replicate(1000, mydf[sample(nrow(mydf)),] , simplify = FALSE)
names(lst) <- paste("rand.val", 1:length(lst), sep = "")
list2env(lst , envir = .GlobalEnv)
看起来像这样:
head(rand.val1)
Binomial S4 S5 S6
229 Euastacus girurmulayn 46.63442 3.399884 39.0
168 Distocambarus crockeri 15.76044 6.322875 34.7
235 Euastacus jagabar 46.63442 3.399884 40.6
163 Cherax robustus 44.04395 3.108239 42.5
506 Procambarus ortmannii 88.58447 4.422301 24.0
392 Pacifastacus fortis 30.40509 5.860764 42.0
我需要更换 score.rand1 &#39; score.rand1 的列S4,S5,S6。数据框由S4,S5,S6列的 rand.val1 &#39;数据框基于&#39; 二项式&#39;。对于&#39; 得分,然后是&#39;通过&#39; rand.val2 &#39; ...&#39; 得分.3和#39;通过&#39; rand.val3 &#39;所有1000个数据帧的数据帧......等等。
答案 0 :(得分:1)
将您的数据集放在两个单独的列表中然后您可以使用mapply的合并函数来浏览您的两个数据帧列表,从第一个列表中删除冗余列,然后将两者合并在一起,这看起来像这样:
combined = mapply(function(rand,score){
rand$S4 = NULL
rand$S5 = NULL
rand$S6 = NULL
output = merge(x = rand, y = score, by = "Binomial")
}, scores,rand)