2014-07-15 26 views
0

如何在R中使用間接引用?更具體地說,在以下簡單的讀取語句中,我希望能夠使用變量名將inputFile讀入數據表myTable中。如何使用間接引用將內容讀入R中的數據表中。

myTable的< - read.csv(INPUTFILE,九月=」, 「首標= T)

代替上述的,我想定義

refToMyTable < - 」 myTable「

那麼,如何使用refToMyTable而不是myTable將inputFile讀入myTable?

感謝您的幫助。

回答

1

R不真的有這樣的引用,但你可以使用字符串來檢索/創建一個名稱的變量。

但首先讓我說這一般是不是一個很好的做法。如果你正在尋找這種類型的東西,這通常表明你不是在做「R方式」。

然而

assign(refToMyTable, read.csv(inputFile, sep=",", header=T)) 

應的伎倆。而補充assignget使用它的名字來檢索變量的值。

+0

這工作得很好。非常感謝你!關於你對這不是R方式的評論,你可能是對的。這對我來說更適合在R和我擁有的UI之間來回傳遞。 – kkgg

0

我想你的意思是這樣的:

reftomytable='~/Documents/myfile.csv' 
myTable=read.csv(reftomytable) 
+0

你解決方案是針對文件的參考。我想要在讀命令中引用數據表。 – kkgg

0

也許assign由MrFlick提及。

當你想要使用名爲「myTable」的對象的內容,您可以使用get

get("myTable") 
get(refToMyTable) # since get will evaluate its argument 

(這將是更好的多個這樣的dataframes的結果分配給IST對象或引用類)

如果你想要一個語言名對象,你會使用as.name

as.name("myTable") 
# myTable .... is printed at the console; note no quotes 
str(as.name("myTable")) 
#symbol myTable 
+0

在這種情況下,我需要使用 as.name(refToMyTable)< - read.csv(inputFile,sep =「,」,header = T) 這不起作用。 as.name()的作用或許是查看內容,而不是指定內容。 – kkgg

+0

因此勾選給出「分配」的答案,人們可​​以停止將問題視爲未答覆。 –

相關問題