data.frame - это просто список с некоторыми добавленными атрибутами. Просто приведите это:
> specimens <- list(A=runif(10),B=runif(10))
>
> as.data.frame(specimens)
A B
1 0.6746436 0.7599987
2 0.2198677 0.5004017
3 0.4927745 0.9455003
4 0.8028011 0.8718274
5 0.6190707 0.7415874
6 0.5273992 0.8118802
7 0.6602548 0.4432799
8 0.5820781 0.8117375
9 0.8196531 0.5172833
10 0.0683938 0.0205693
Редактировать : Перечитывая вашу проблему, я подозреваю, specimens
- это символьный вектор, а не список. Если так:
N.rows <- 10
specimens <- c("A","B")
spec.dat <- as.data.frame(matrix(NA,nrow=N.rows,ncol=length(specimens)))
colnames(spec.dat) <- specimens
> spec.dat
A B
1 NA NA
2 NA NA
3 NA NA
4 NA NA
5 NA NA
6 NA NA
7 NA NA
8 NA NA
9 NA NA
10 NA NA