Saya bertanya-tanya apakah ada cara sederhana untuk menghasilkan daftar variabel menggunakan for for, dan memberikan nilainya.
for(i in 1:3)
{
noquote(paste("a",i,sep=""))=i
}
Pada kode di atas, saya mencoba untuk membuat a1
, a2
, a3
, yang menetapkan dengan nilai-nilai 1, 2, 3. Namun, R memberikan pesan kesalahan. Terima kasih atas bantuan Anda.
names
parameternya dan kemudian menggunakannya,attach
atau mengubahnya menjadi lingkungan denganlist2env
daneval
di dalamnya. Tanpa loop, parse atau hal-hal buruk lainnyalist2env
adalah fungsi yang relatif baru. Dan masih akan menghasilkan variabel di beberapa lingkungan, ketika OP ingin mendapatkan variabel di lingkungan teratas. Jadi kejelekan masih ada :)Jawaban:
Anda mencari
assign()
.memberi
dan
Memperbarui
Saya setuju bahwa menggunakan loop adalah (sangat sering) gaya pengkodean R yang buruk (lihat diskusi di atas). Menggunakan
list2env()
(terima kasih kepada @mbq untuk menyebutkannya), ini adalah solusi lain untuk pertanyaan @Han Lin Shang:sumber
Jika nilainya dalam vektor, loop tidak diperlukan:
Sebagai catatan, ini adalah alasan mengapa saya suka R.
sumber
library(fortunes)
fortune(106)
parse
setelah membaca halaman bantuan R. Saya setuju bahwa kadang-kadang ini adalah kerja keras, misalnya dalamformula
manajemen, tetapi saya merasa sangat berguna. Perhatikan bahwa saya tidak dapat memikirkan kembali pertanyaan seperti yang disarankan dalam kekayaan, karena saya tidak menanyakannya.