2016-12-19 4 views
1

私は4つの列を持つRのデータフレームを持っており、私は各変数のクラスをforループを使用して取得しようとしています。変数のクラスによっては、さらにコードを書くことができます。以下はデータフレームです。ループを使ってRで変数のクラスを取得する方法は?

var1 var2 var3 var4 
1  1 a a s 
2  2 g a s 
3  3 b   s 
4  4 n s s 
5 NA m f f 
6  6 r g v 
7  7 t   b 
8  8   j  
9  9 y i g 
10 10 h i t 

は、今のところ私は、コードの下にしようとしているが、それは上記のコードを持つ変数

for (i in names(df)){ 
    print(names(df[i])) 
    name <- names(df[i]) 
    print(class(df$name)) 
} 

結果のクラスにNULLを与えている:

[1] "var1" 
    [1] "integer" 
    [1] "var2" 
    [1] "factor" 
    [1] "var3" 
    [1] "factor" 
    [1] "var4" 
    [1] "integer" 
を結果

[1] "var1" 
[1] "NULL" 
[1] "var2" 
[1] "NULL" 
[1] "var3" 
[1] "NULL" 
[1] "var4" 
[1] "NULL" 

期待します

あなたのご依頼p。例としてmtcarsを使用して

答えて

3

data.frame sが本当に列のちょうどlistなので、私はこのしばしばlapplyを使用してくださいこの例では、df$nameを呼び出すと、Rは「名前」という列を検索しようとしています。代わりに、あなたは望みますdf[, name]

for (i in names(df)){ 
    name <- names(df[i]) 
    print(name) 
    print(class(df[, name])) 
} 
1

:あなたが持っているforループ用として

lapply(df, class) 

for (i in names(mtcars)){ 
    print(names(mtcars[i])) 
    name <- names(mtcars[i]) 
    print(class(mtcars[,i])) 
    } 
関連する問題