我的教授给我发了一个.rdata文件,希望我对内容做一些分析。虽然我对R很体面,但我从未在.rdata文件中保存过我的工作,因此从未使用它们。
当我尝试加载文件时,它看起来像是在工作:
> load('/home/swansone/Desktop/anes.rdata')
> ls()
[1] "25383-0001-Data"
但我似乎无法获得数据:
> names("25383-0001-Data")
NULL
我知道.rdata文件中有数据(它是13 MB,那里肯定有很多)我做错了什么?我很茫然。
编辑:
我应该注意,我也尝试过不使用引号:
> names(25383-0001-Data)
Error: object "Data" not found
重命名:
> ls()[1] <- 'nes'
Error in ls()[1] <- "nes" : invalid (NULL) left side of assignment
答案 0 :(得分:16)
对于一个不以字母或字母开头的对象,你会遇到很多问题。和一封信(如An Introduction to R中所述)。
使用反引号来访问此对象(help("`")
的“名称和标识符”部分解释了其工作原理)并将对象分配给新的,语法上有效命名的对象。
Data <- `25383-0001-Data`
答案 1 :(得分:5)
也许它与名称和反引号工作中不寻常使用短划线有关:
names(`25383-0001-Data`)
更多供参考(因为约书亚已经完美地回答了主要问题),你也可以使用ls()
重新分配来自get()
(Wilduck在问题中尝试过)的对象。如果名称的对象包含非常奇怪的字符,这可能很有用:
foo <- 1:5
bar <- get(ls()[1])
bar
[1] 1 2 3 4 5
这当然要求foo
中的ls()
索引为[1]
,但查找所需对象的索引并不太难。