0

我有一个名为 namearray 的命名数组

> namearray
evntidABCD evntidWXYZ     
         1          2 
> names(namearray)
[1] "evntidABCD" "evntidWXYZ"

> nrow(namearray)
[1] 2

从这个namearray,我想构造一个namedf的数据框,这样namedf的col.names应该和namearray完全一样。并且namedf的行数应该比namearray少1,因为namearray的第一行是列名。

我尝试了以下代码,它给了我以下错误。

>namedf<-data.frame()
>col.names(namedf)<-names(namearray)

Error in `colnames<-`(`*tmp*`, value = c("evntidABCD", "evntidWXYZ")) : 
  'names' attribute [2] must be the same length as the vector [0]
4

1 回答 1

2
> namearray
evntidABCD evntidWXYZ     
         1          2 

这肯定不像一个“阵列”。也许命名为“矢量”。

如果您创建一个没有列的数据框,那么就没有什么可命名的了。这将扩展一个“空数据框”

namevec <- c(evntidABCD=1, evntidWXYZ =2)  
namedf<-data.frame()
namedf <- setNames( rbind(namedf,namevec), names(namevec) )

(贾斯汀的建议更好。)

于 2013-06-27T18:49:23.433 回答