我在嵌段[[I]]数据,其中i = 4〜6,像这样随机地从行的子集选择
Stimulus Response PM
stretagost s <NA>
colpublo s <NA>
zoning d <NA>
epilepsy d <NA>
resumption d <NA>
incisive d <NA>
440在每个块[[I]]行。
目前,我的脚本每15个试验中就有一个随机选择一个项目(每个110除前5个试验外,我还设置了所以我不能选择小于2的行) [一世]]。
我希望能够做的是做的东西从每15个审判中的1项,从响应==“d”的那些随机选出的。即,我不希望我的随机选择对响应==“s”的行执行任何操作。我不知道如何实现这一点,但这里是剧本我到目前为止,这只是随机选择1排出来的每个15:
PMpositions <- list()
for (i in 4:6){
positions <- c()
x <- 0
for (j in c(seq(5, 110-15, 15),seq(115, 220-15, 15),seq(225, 330-15, 15),seq(335,440-15, 15)))
{
sub.samples <- setdiff(1:15 + j, seq(x-2,x+2,1))
x <- sample(sub.samples, 1)
positions <- c(positions,x)
}
PMpositions[[i]] <- positions
blocks[[i]]$Response[PMpositions[[i]]] <- Wordresponse
blocks[[i]]$PM[PMpositions[[i]]] <- PMresponse
blocks[[i]][PMpositions[[i]],]$Stimulus <- F[[i]]
}
我结束了与它打交道,像这样
PMpositions <- list()
for (i in 1:3){
startingpositions <- c(seq(5, 110-15, 15),seq(115, 220-15, 15),seq(225, 330-15,
15),seq(335, 440-15, 15))
positions <- c()
x <- 0
for (j in startingpositions)
{
sub.samples <- setdiff(1:15 + j, seq(x-2,x+2,1))
x <- sample(sub.samples, 1)
positions <- c(positions,x)
}
repeat {
positions[which(blocks[[i]][positions,2]==Nonwordresponse)]<-
startingpositions[which(blocks[[i]][positions,2]==Nonwordresponse)]+sample(1:15,
size=length(which(blocks[[i]][positions,2]==Nonwordresponse)), replace = TRUE)
distancecheck<- which (abs(c(positions[2:length(positions)],0)-positions) < 2)
if (length(positions[which(blocks[[i]][positions,2]==Nonwordresponse)])== 0 & length
(distancecheck)== 0) break
}
PMpositions[[i]] <- positions
blocks[[i]]$Response[PMpositions[[i]]] <- Wordresponse
blocks[[i]]$PM[PMpositions[[i]]] <- PMresponse
blocks[[i]][PMpositions[[i]],]$Stimulus <- as.character(NF[[i]][,1])
Nonfocal[[i]] <- blocks[[i]]
}
我意识到,当我陷入重复循环时,有时候我有15个“连续响应!卫生署。能很好的解决这个问题,但对于我需要的东西来说没问题,当我被卡住时,我只是再次运行它(d/s的位置是随机生成的)。
这是我想要的一步,不同的是我想每15分钟拿一个样本,例如如果我的随机不落在一个d我重绘,直到我得到一个 – luke123 2013-05-07 03:33:45
看看这个更新是否适合你。 – Thomas 2013-05-07 06:52:42