Преобразование каждого элемента символьного вектора в заголовки столбцов без зацикливания - PullRequest
1 голос
/ 01 декабря 2011

ВХОД

  1. specimens: вектор символов из 60 элементов: specimen1A, specimen1B, specimen2A ... specimen 30B.

желаемый выход

  1. Матрица или кадр данных, в котором каждый элемент в specimens является именем столбца в матрице / кадре данных.
  2. Количество строк должно быть фиксированным (любым).
  3. Данные для ячеек будут заполнены последующим кодом, поэтому их можно оставить как NA.

Например:

   specimen1A  specimen1B specimen2A ... specimen 30B
1   NA          NA              NA         NA
2   NA          NA              NA         NA
3   NA          NA              NA         NA
..  ..          ..              ..         ..
100 NA          NA              NA         NA

Спасибо

1 Ответ

3 голосов
/ 01 декабря 2011

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...