Zastanawiam się, czy istnieje prosty sposób na utworzenie listy zmiennych za pomocą pętli for i podanie jej wartości.
for(i in 1:3)
{
noquote(paste("a",i,sep=""))=i
}
W powyższym kodzie, staram się tworzyć a1
, a2
, a3
, które przypisać do wartości 1, 2, 3. Jednakże R daje komunikat o błędzie. Dzięki za pomoc.
names
parametrów, a później albo po prostu z niej korzystasz,attach
albo zamieniasz ją na środowisko z nimlist2env
ieval
wewnątrz niego. Bez pętli, parsowania i innych brzydkich rzeczy.list2env
jest stosunkowo nową funkcją. I nadal będzie generować zmienne w pewnym środowisku, gdy OP chce uzyskać zmienne w najwyższym środowisku. Więc brzydota wciąż pozostaje :)Odpowiedzi:
Twój szukasz
assign()
.daje
i
Aktualizacja
Zgadzam się, że używanie pętli jest (bardzo często) złym stylem kodowania R (patrz dyskusja powyżej). Wykorzystując
list2env()
(dzięki @mbq za wzmiankę o tym), jest to inne rozwiązanie pytania @ Han Lin Shanga:źródło
Jeśli wartości są w wektorze, pętla nie jest konieczna:
Na marginesie, to jest powód, dla którego kocham R.
źródło
library(fortunes)
fortune(106)
parse
po przeczytaniu stron pomocy R. Zgadzam się, że czasami jest to przesada, na przykład wformula
zarządzaniu, ale uważam ją za bardzo przydatną. Zauważ, że nie mogę ponownie przemyśleć pytania, jak zasugerowano w fortunie, ponieważ go nie zadałem.