2014-07-15 22 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

因此勾选给出“分配”的答案,人们可​​以停止将问题视为未答复。 –

相关问题