2015-07-13 86 views
0

最近一直在處理許多不同的數據集,並需要快速識別不同列的列號。例如,我有一個包含75個變量(或列)的數據集。我需要使用的變量位於數據集的中間,我知道這些變量的名稱,即g,h,I,j和k。而不是每次我想使用它們或更改或引用他們,我通常使用的列數即R列編號

for (i in 35:39) { do bla bla bla} 

通常的方式,我覺得列數是我看數據幀寫這些變量的名稱和數列,直到我到達我想要的那一列,然後我計算他們中有多少人得到我的35:39。有一個更好的方法嗎?有沒有更好的方法來找出列/變量g是列號35和列/變量k是#39?

+0

我認爲有幾種方法。這只是一個黑客:'cbind(1:ncol(iris),names(iris))'它返回一個矩陣,第1列等於列號,第2列矩陣名稱爲第「n」列。 – SabDeM

+0

我喜歡這個想法,生病得試一試 – James

回答

3

只是我評論的擴展版本。正如我所說有幾種方式可以這樣做,我不認爲是正確的。這是一個可能的解決方案(如果我得到你想要的東西當然)。

as.data.frame(cbind(column = 1:ncol(iris),names = names(iris))) 
    column  names 
1  1 Sepal.Length 
2  2 Sepal.Width 
3  3 Petal.Length 
4  4 Petal.Width 
5  5  Species 

以這種方式,你知道什麼名字在哪一列對應。

2

如果你想看到哪些列被命名爲g你可以做

which(names(mydataframe) == 'g') 

它給你列的名稱爲「G」的指標。

+1

或者,grep(「g」,names(mydataframe)) – lawyeR

0

您可以使用match而不是which,因爲您只需要一列匹配(我認爲它會更快)。

match('g',names(mydataframe))