列表中的数据帧,如何更改索引?

时间:2014-07-16 16:13:19

标签: r

我的数据被拆分成许多文件,我现在需要合并。这是我第一次来R,因为我使用的源代码不允许使用Python。我知道可以将数据帧收集为

for (year in seq) LL[[year]] <- read.dta(paste("filenameStart", year, ".dta", sep="") )

很好,我接着

> summary(LL)
     Length Class      Mode
1993 54     data.frame list
1994 54     data.frame list
1995 54     data.frame list
1996 54     data.frame list
1997 54     data.frame list
1998 54     data.frame list
1999 54     data.frame list
2000 54     data.frame list
2001 54     data.frame list
2002 54     data.frame list
2003 54     data.frame list
2004 54     data.frame list
2005 54     data.frame list
2006 54     data.frame list
2007 54     data.frame list
2008 54     data.frame list
2009 54     data.frame list
2010 54     data.frame list

但是,我不明白第一栏是什么。它不能成为索引,因为我没有做到

> LL[1993]
$<NA>
NULL

并且必须使用LL[1]等来访问它们。有没有办法将年份用作索引,因为摘要似乎意味着什么?或者我完全错了,“ un-R-ish ”?

1 个答案:

答案 0 :(得分:0)

查看?dimnames处的帮助页面,您会在&#34;价值&#34;中看到以下内容。部分:

  

矩阵或数组的dimnames可以是NULL(未存储)或与dim(x)长度相同的列表。如果是列表,则其组件为NULL或具有x的适当维度的正长度的字符向量。列表可以有名称。所有组件都可能是NULL:此类名称可能会转换为NULL

     

对于&#34; data.frame&#34;方法两个dimnames都是字符向量,rownames必须不包含重复项或缺少值。

因此,要访问这些值,您需要将它们视为字符向量。

LL[["1993"]]

如果您不将它们视为字符向量,L[[1993]]将假设您正在尝试获取1993rd列表元素。如果这不存在,您将得到一个超出边界的下标错误。