在R中列出数据框的所有列及其对应的列索引

时间:2014-10-10 09:55:00

标签: r indexing multiple-columns lapply

我的样本数据如下:

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))

我想获得一个包含列名及其索引的表。 E.g。

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)

非常感谢您提前花时间和精力。

1 个答案:

答案 0 :(得分:3)

这应该有效:

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