Menghapus karakter pertama dari beberapa nama kolom

Pertanyaan saya adalah tentang mengganti nama beberapa nama kolom sekaligus.

Saya memiliki kerangka data yang disebut 'pertumbuhan' dengan 46 kolom.

Kolom 2:46 semuanya diberi nama tanggal, tetapi semua tanggal mempunyai tanda X di depannya, mis. 'X1981'.

Tentu saja saya ingin menghapus X dari semua nama kolom.

Saya tidak mengerti mengapa yang berikut ini tidak berfungsi:

colnames(growth[ ,2:length(growth)]) <- substring(colnames(growth[ ,2:length(growth)]),2)

Tolong bantu saya dengan beberapa wawasan.


person Wade Byron Profe    schedule 24.06.2018    source sumber
comment
Mungkin terkait dengan ini   -  person David Arenburg    schedule 24.06.2018
comment
Anda sebenarnya harus membentuk ulang data lebar Anda ke format panjang, dengan memiliki kolom Tahun dan nilai di kolom yang berdekatan. Skala ini lebih baik dan perhitungannya jauh lebih mudah.   -  person Parfait    schedule 24.06.2018
comment
Kemungkinan duplikat Perbedaan antara `names(df[1]) ‹- ` dan `names(df) [1] ‹- `   -  person Rui Barradas    schedule 24.06.2018


Jawaban (1)


Tidak apa-apa, saya mengubah instruksinya menjadi...

names(growth)[2:46] <- substring(names(growth)[2:46],2)

...dan sekarang berhasil. Jelas itu ada hubungannya dengan cara saya membuat subset kolom.

person Wade Byron Profe    schedule 24.06.2018
comment
Kerja bagus. Perhatikan bahwa jika pertumbuhan memiliki 46 kolom maka Anda dapat mengganti 2:46 dengan -1 yang lebih ringkas. - person sindri_baldur; 24.06.2018
comment
Itu mungkin karena dengan melakukan colnames(growth[, 2:46]) <- ... Anda membuat subset dari data.frame asli Anda, kemudian Anda membuat vektor karakter dengan panggilan substring() Anda, dan setelah itu Anda menetapkan vektor karakter ini ke subset growth yang dibuat sebelumnya. Jadi outputnya adalah vektor karakter dari nama (yang diinginkan). Jika Anda memasukkan kode Anda ke dalam tanda kurung, Anda akan melihat sesuatu seperti: [1] "2" "3" "4"..."45" "46". Namun, saya yakin seseorang yang memiliki pengetahuan lebih baik tentang R akan menjelaskannya lebih baik daripada saya, atau akan mengoreksi saya jika saya salah. - person utubun; 24.06.2018