将字符向量的每个项目转换为列标题而不进行循环

时间:2011-11-30 23:46:40

标签: r

INPUT

  1. specimens:60个项目的字符向量:specimen1A, specimen1B, specimen2A ... specimen 30B
  2. 期望的输出

    1. 矩阵或数据框,其中specimens中的每个项目是矩阵/数据框中列的名称。
    2. 行数必须设置为固定值(任意)。
    3. 单元格的数据将填充后续代码,因此可以保留为NA。
    4. 例如:

         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 个答案:

答案 0 :(得分:3)

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