2014-10-10 54 views
0

我的样本数据如下:Tablulate所有的数据帧一列和R中相应列的索引

structure(list(v1 = 1:4, v2 = c(2L, 3L, 4L, 2L), v3 = 1:4, v4 = c(4L, 
3L, 2L, 3L)), .Names = c("v1", "v2", "v3", "v4"), class = "data.frame", row.names = c(NA, 
-4L)) 

我想获得一个表中的列名,它们的指标。例如。

v1 v2 v3 
1 2 3 

我尝试了以下代码(搜索在各种论坛和互联网之后,但它总是返回NA或一些错误)

> lapply(df, function(x) match(x, names(df))) 
$v1 
[1] NA NA NA NA 

$v2 
[1] NA NA NA NA 

$v3 
[1] NA NA NA NA 

$v4 
[1] NA NA NA NA 

> lapply(df, function(x) which(colnames(df)==x)) 
$v1 
integer(0) 

$v2 
integer(0) 

$v3 
integer(0) 

$v4 
integer(0) 

非常感谢您的宝贵时间和精力提前。

回答

3

这应该工作:

aa <- 1:ncol(iris)  ## create vector of indices of the right size 
names(aa) <- names(iris) ## name entries 
aa 
+1

或'setNames(seq_len点(NcoI(DAT)),colnames(DAT))' – akrun 2014-10-10 10:18:47

+0

@ilir:辉煌的解决方案...感谢交朋友! – 2014-10-11 08:41:34

相关问题