Я никогда не приходил к каким-либо выводам относительно этого вопроса, поэтому я подумал, что перефразирую его и задам снова.
Я хотел бы сделать выборку из своего набора данных 10000 раз, чтобы получить средние значения и 95% CI для каждого из моих ответов.
Вот пример того, как структурирован набор данных:
x <- read.table(tc <- textConnection("
study expt variable value1 value2
1 1 A 1.0 1.1
1 2 B 1.1 2.1
1 3 B 1.2 2.9
1 4 C 1.5 2.3
2 1 A 1.7 0.3
2 2 A 1.9 0.3
3 1 A 0.2 0.5"), header = TRUE); close(tc)
Я бы хотел отобрать каждую комбинацию исследование / переменная только один раз. Так, например, подмножество набора данных будет выглядеть так:
study expt variable value1 value2
1 1 A 1.0 1.1
1 2 B 1.1 2.1
1 4 C 1.5 2.3
2 1 A 1.7 0.3
3 1 A 0.2 0.5
Обратите внимание, что строки 3 и 6 пропали, поскольку обе измеряли переменную дважды (B в первом случае, A во втором).
Я хочу рисовать субсэмплированные наборы данных снова и снова, чтобы я мог получить общее значение value1 и value2 с 95% CI для каждой переменной. Таким образом, вывод, который я хотел бы получить после всей процедуры подвыборки, будет:
variable mean_value1 lower_value1 upper_value1 mean_value2 etc....
A 2.3 2.0 2.6 2.1
B 2.5 2.0 3.0 2.5
C 2.1 1.9 2.3 2.6
Вот некоторый код, который я должен взять подмножество:
subsample<-function(x, B){
samps<-ddply(x, .(study,variable), nrow)[,3] #for each study/variable combination,
#how many experiments are there
expIdx<-which(!duplicated(x$study)) #what is the first row of each study
n<-length(samps) #how many studies are there
sapply(1:B, function(a) { #use sapply for the looping, as it's more efficient than for
idx<-floor(runif(n, rep(0,n), samps)) #get the experiment number-1 for each study
x$value[idx+expIdx] #now get a vector of values
})
Любая помощь приветствуется. Я понимаю, что это сложно, поэтому, пожалуйста, дайте мне знать, если вам нужны разъяснения!