加载其他人的.rdata文件,无法访问数据

Wil*_*uck 9 load r

我的教授给我发了一个.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)

  • @Wilduck:我并不打算暗示你那样命名变量.我还将手册作为参考链接,而不是建议你没有阅读它.干杯. (3认同)

Sac*_*amp 5

也许它与名称和反引号工作中不寻常使用破折号有关:

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)

当然,这需要的指数fools()[1]的,但查找所需要的对象的索引不是太难.