Apakah mungkin untuk membuat nama variabel baru dengan cepat?
Saya ingin membaca bingkai data dari daftar menjadi variabel baru dengan angka di akhir. Sesuatu seperti orca1, orca2, orca3 ...
Jika saya mencoba sesuatu seperti
paste("orca",i,sep="")=list_name[[i]]
Saya mendapatkan kesalahan ini
target of assignment expands to non-language object
Apakah ada cara lain untuk mengatasi ini?
Jawaban:
Penggunaan
assign
:sumber
paste0
?Sepertinya saya bahwa Anda mungkin akan lebih baik dengan daftar daripada menggunakan
orca1
,orca2
, dll, ... maka akanorca[1]
,orca[2]
...Biasanya Anda membuat daftar variabel yang hanya dibedakan oleh angka karena angka itu akan menjadi cara mudah untuk mengaksesnya nanti.
Jika tidak,
assign
hanya apa yang Anda inginkan.sumber
Jangan membuat bingkai data. Simpan daftarnya, beri nama elemennya tetapi jangan lampirkan.
Alasan terbesar untuk ini adalah bahwa jika Anda membuat variabel saat dalam perjalanan, hampir selalu Anda nantinya harus mengulanginya satu per satu untuk melakukan sesuatu yang berguna. Di sana Anda sekali lagi akan dipaksa untuk mengulangi setiap nama yang telah Anda buat dengan cepat.
Jauh lebih mudah untuk menamai elemen-elemen dari daftar dan mengulang-ulang nama-nama tersebut.
Sejauh menyangkut attachment, praktik pemrogramannya yang sangat buruk di R dan dapat menyebabkan banyak masalah jika Anda tidak berhati-hati.
sumber
FAQ mengatakan:
Jika Anda memiliki
Anda dapat melakukan
untuk
atau
untuk
Jadi sepertinya Anda menggunakan GET saat Anda ingin mengevaluasi rumus yang menggunakan variabel (seperti gabungan), dan ASSIGN saat Anda ingin menetapkan nilai ke variabel yang dideklarasikan sebelumnya.
Sintaks untuk menetapkan: menetapkan (x, nilai)
x: nama variabel, diberikan sebagai string karakter. Tidak ada paksaan yang dilakukan, dan elemen pertama dari vektor karakter dengan panjang lebih dari satu akan digunakan, dengan sebuah peringatan.
nilai: nilai yang akan diberikan ke x.
sumber
Solusi rumit lainnya adalah memberi nama elemen daftar dan
attach
itu:sumber
attach
Anda biasanya menanyakan pertanyaan yang salah ...Dan opsi ini?
Ini bekerja dengan sempurna. Dalam contoh yang Anda masukkan, baris pertama hilang, lalu memberi Anda pesan kesalahan.
sumber