2

ループを使用して、列名の文字列を変更することにより、ループの結果として列名の参照が変更されるヒストグラムを作成しようとしています。column1、、、の4 つのヒストグラムcolumn2を取得したいと考えています。(私の実際の例では、列の名前は列1ではありませんが、明確にしたいです)。 column3column4

For (i in 1:4){
  hist( paste("dataset$column" +i )  , main ="title") 
}

貼り付けを使用しようとするとx、数値でなければならないというエラーが表示されますが、1つだけをチェックとして使用してみると

hist( dataset$column1), main = "title")  

正常に動作するため、データ自体ではありません。

4

4 に答える 4

2

私は通常lapply()、これらの場合に使用します。gsub()これは、名前を少しきれいにするために使用した例です。

set.seed(001)
DF <- data.frame(Funky.Name.1 = rnorm(100),
                 Funky.Name.2 = rnorm(100),
                 Whoo.Whoo = rnorm(100),
                 Yee.Haw = rnorm(100))
lapply(names(DF), 
       function(x) hist(DF[, x], main = gsub("\\.", " ", x), xlab="Value"))

デモ

par(mfrow = c(2, 2))行ごとに塗りつぶされた 2x2 グリッドに 4 つのプロットを一緒にプロットできるようにします。

# par(mfrow = c(2, 2)) # 2x2 layout of all four Histograms
# lapply(names(DF), 
#        function(x) hist(DF[, x], main = gsub("\\.", " ", x), xlab="Value"))
# When you're done: dev.off()

結果:

ここに画像の説明を入力

于 2012-10-08T17:20:05.340 に答える
2

使用できますapply

set.seed(001)
DF <- data.frame(column1=rnorm(100), 
                 column2=rnorm(100),
                 column3=rnorm(100),
                 column4=rnorm(100))

apply(DF, 2, hist)  # It produces one hist for each column

forループの使用

for(i in 1:ncol(DF)){
  hist(DF[, paste('column', i, sep='')],
       main=paste('Histogram', i))

}
于 2012-10-08T16:19:43.233 に答える
1
  1. 私はこれを非常に疑っています:

    hist( dataset$column1), main = "title")  
    

    動作します-余分なブラケットがあります。

  2. もしあなたがそうするなら:

     paste("dataset$column" +i )
    

    文字列「dataset$column1」などを取得します。代わりに、必要な列を選択する必要があります。

     for (i in 1:4) {
        hist(dataset[,i]  , main ="title") 
     }
    

    列 1、2、3、および 4 を選択します。

  3. または、次のようにすることもできます。

     for (i in 1:4) {
        hist(dataset[[paste0("column",i)]]  , main ="title") 
     }
    
于 2012-10-08T16:14:46.123 に答える
1

for関数は大文字ではありません。また、" +" 演算子は文字値では機能しません。また、試みている方法で列名「茎」に数値を追加することはできませんが、「」演算子の引数を計算することはできます。[[これは、「」演算子が実際に何であるか$です。これは、「データセット」の列名が実際に何であるかに応じて機能する場合があります。

for (i in 1:4) {
  hist( dataset[[ paste0("column", i ) ]]  , main ="title") 
}
于 2012-10-08T16:45:52.713 に答える