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