Я не думаю, что функция row
делает то, что вы думаете:
Возвращает матрицу целых чисел, указывающую их номер строки в подобном матрице объекте, или коэффициент, обозначающий метки строк.
Глядя на то, что он возвращает в список, который у вас есть
> row(onelist[[1]])
[,1] [,2]
[1,] 1 1
[2,] 2 2
[3,] 3 3
[4,] 4 4
> row(onelist[[1]])==srow
[,1] [,2]
[1,] FALSE FALSE
[2,] FALSE FALSE
[3,] FALSE FALSE
[4,] FALSE FALSE
Вы делаете простое подмножество data.frames, поэтому вы можете просто использовать
newlist <- lapply(onelist, function(y) y[srow,])
что дает
> newlist
[[1]]
sn var1
2 X2 0.2105123
3 X3 0.7329553
[[2]]
sn var1
2 X2 0.33195997
3 X3 0.08243274
[[3]]
sn var1
2 X2 0.3852362
3 X3 0.3729459