0

後でループ内で使用できるように、変数名として機能する名前のベクトルを作成したいと考えています。

years=1950:2012  
for(i in 1:length(years))  
{    
varname[i]=paste("mydata",years[i],sep="")   
}

これは与える:

> [1] "mydata1950" "mydata1951" "mydata1952" "mydata1953" "mydata1954" "mydata1955" "mydata1956" "mydata1957" "mydata1958"
[10] "mydata1959" "mydata1960" "mydata1961" "mydata1962" "mydata1963" "mydata1964" "mydata1965" "mydata1966" "mydata1967"
[19] "mydata1968" "mydata1969" "mydata1970" "mydata1971" "mydata1972" "mydata1973" "mydata1974" "mydata1975" "mydata1976"
[28] "mydata1977" "mydata1978" "mydata1979" "mydata1980" "mydata1981" "mydata1982" "mydata1983" "mydata1984" "mydata1985"
[37] "mydata1986" "mydata1987" "mydata1988" "mydata1989" "mydata1990" "mydata1991" "mydata1992" "mydata1993" "mydata1994"
[46] "mydata1995" "mydata1996" "mydata1997" "mydata1998" "mydata1999" "mydata2000" "mydata2001" "mydata2002" "mydata2003"
[55] "mydata2004" "mydata2005" "mydata2006" "mydata2007" "mydata2008" "mydata2009" "mydata2010" "mydata2011" "mydata2012"

私がやりたいのは、引用符を削除して、各値を個別に呼び出すことができるようにすることだけです。

私が欲しい:

>[1] mydata1950 mydata1951 mydata1952 mydata1953, #etc... 

次のような変数として格納されます

varname[1]        
> mydata1950    

varname[2] 
> mydata1951  

等々。

私は遊んだことがあります

cat(varname[i],"\n") 

しかし、これは値を1行として出力するだけで、個々の文字列を呼び出すことはできません. と

gsub("'",'',varname)

しかし、これは何もしないようです。

提案?これはRで可能ですか?ありがとうございました。

4

1 に答える 1

3

その文字ベクトルの値に引用符はありません。使用する:

 cat(varname)

....引用符で囲まれていない値を見たい場合。R 印刷メカニズムは、異なる値が存在するという脳への信号として引用符を使用するように設定されています。以下も使用できます。

print(varname, quote=FALSE)

ワークスペースに名前付きオブジェクトがたくさんある場合は、リストの使い方を必死に学ぶ必要があります。文字値を名前に「プロモート」するためのメカニズムがありますが、これは、言語を効果的に使用することを学習する側の失敗と見なされます。

var <- 2

> eval(as.name('var'))
[1] 2
> eval(parse(text="var"))
[1] 2
> get('var')
[1] 2
于 2013-11-03T06:50:10.257 に答える