2017-11-26 10 views
0

私は最初の列が各状態の名前であるデータフレームを持っています。最後の列はカテゴリ変数です。私はこれら2つ以外のすべての列を拡大/縮小したいそして、後で最後の列をデータフレームに戻したいと思います。私は、最後の列の名前がなくなっているデータフレームを取り戻すときにここで私は データフレームの追加された変数の名前を変更する

data_new <- cbind(scale(data[,2:11], FALSE, apply(data[,2:11], 2, sd)), data[ ,c(12)]) 

をdid-ものだ(あなたが4,4,4,1,3,2の列を見れば......)。

  violcr propcr ympct medinc ymunemp subsabuse  gini ineqratio school bachdeg 
[1,] 3.3178283 5.520019 14.91484 4.926599 5.926865 9.942629 24.34441 2.297458 7.420143 5.293805 4 
[2,] 4.9355995 4.794578 19.33284 8.132947 3.660475 13.367018 21.36148 1.773477 6.497878 6.542936 4 
[3,] 3.1043508 5.554588 15.76717 5.653173 4.779743 12.653053 23.92486 2.754263 5.925069 6.270668 4 
[4,] 3.7269288 5.798660 15.19722 4.672179 4.334980 10.167396 24.11929 2.767698 8.379425 4.943795 4 
[5,] 3.0748521 4.240596 16.55721 6.962185 5.279658 11.515997 25.01979 3.882839 5.351711 7.171495 1 
[6,] 2.3994870 4.395204 16.06272 6.731090 3.732236 13.591785 23.45414 2.700521 5.250990 8.690245 3 
[7,] 1.8390115 3.336054 15.09004 7.914420 5.419199 11.820093 25.60819 5.723492 7.062003 7.554442 2 

私はしかし、私はエラーを取得し、カラム・

colnames(data_new)[,12] <- "guns" 

を12位に名前を付けるには、このコマンドを使用してみました。最後の列を含むすべての列の名前を変更しようとすると、それも機能しません。誰かがこれを修正する方法を手伝ってもらえますか?

+1

'data [12]'つまり 'cbind(scale(data [、2:11 'data [、12]'は 'vector 'に変換するので' data [12] 'がまだ存在するので、' 'FALSE、apply(data [、2:11]、2、sd) a data.frame – akrun

+1

偉大な..それは働いた。ありがとう! –

+1

'colnames'コマンドを試したときに発生するエラーは何ですか? 'cbind(...、guns = data [、12])'を使って名前を付けることができるはずです。 – MrGumble

答えて

0

あなたは何をすべきか

colnames(data_new) <- c(colnames(data_new)[1:11], "guns") 
を試すには、新しいベクトルを作成し、それを割り当てることです。私はcolセレクタ data_new[,n]があなたにデータのサブセット(つまり1つのcol n)を取得すると思うが、見出しには役に立たない。

関連する問題