数据框列表清单

如何解决数据框列表清单

我有一个名为“ mylist”的列表。它包含2个项目。这些项目中的每一项都是数据帧的列表。列表的第一项是1个数据帧的列表,第二项是2个数据帧的列表,如下所示:-

str(mylist1)
List of 1
 $ :'data.frame':   3 obs. of  3 variables:
  ..$ employee : chr [1:3] "John Doe" "Peter Gynn" "Jolie Hope"
  ..$ salary   : num [1:3] 21000 23400 26800
  ..$ startdate: Date[1:3],format: "2010-11-01" "2008-03-25" "2007-03-14"
> str(mylist2)
List of 2
 $ :'data.frame':   3 obs. of  3 variables:
  ..$ employee : chr [1:3] "John Doe" "Peter Gynn" "Jolie Hope"
  ..$ salary   : num [1:3] 21000 23400 26800
  ..$ startdate: Date[1:3],format: "2010-11-01" "2008-03-25" "2007-03-14"
 $ :'data.frame':   3 obs. of  3 variables:
  ..$ employee : chr [1:3] "John Doe1" "Peter Gynn1" "Jolie Hope1"
  ..$ salary   : num [1:3] 20000 25000 30000
  ..$ startdate: Date[1:3],format: "2011-11-01" "2009-03-25" "2008-03-14"
> str(mylist)
List of 2
 $ :List of 1
  ..$ :'data.frame':    3 obs. of  3 variables:
  .. ..$ employee : chr [1:3] "John Doe" "Peter Gynn" "Jolie Hope"
  .. ..$ salary   : num [1:3] 21000 23400 26800
  .. ..$ startdate: Date[1:3],format: "2010-11-01" "2008-03-25" "2007-03-14"
 $ :List of 2
  ..$ :'data.frame':    3 obs. of  3 variables:
  .. ..$ employee : chr [1:3] "John Doe" "Peter Gynn" "Jolie Hope"
  .. ..$ salary   : num [1:3] 21000 23400 26800
  .. ..$ startdate: Date[1:3],format: "2010-11-01" "2008-03-25" "2007-03-14"
  ..$ :'data.frame':    3 obs. of  3 variables:
  .. ..$ employee : chr [1:3] "John Doe1" "Peter Gynn1" "Jolie Hope1"
  .. ..$ salary   : num [1:3] 20000 25000 30000
  .. ..$ startdate: Date[1:3],format: "2011-11-01" "2009-03-25" "2008-03-14"

列表本身看起来像这样:-

mylist1
[[1]]
    employee salary  startdate
1   John Doe  21000 2010-11-01
2 Peter Gynn  23400 2008-03-25
3 Jolie Hope  26800 2007-03-14

> mylist2
[[1]]
    employee salary  startdate
1   John Doe  21000 2010-11-01
2 Peter Gynn  23400 2008-03-25
3 Jolie Hope  26800 2007-03-14

[[2]]
     employee salary  startdate
1   John Doe1  20000 2011-11-01
2 Peter Gynn1  25000 2009-03-25
3 Jolie Hope1  30000 2008-03-14

> mylist
[[1]]
[[1]][[1]]
    employee salary  startdate
1   John Doe  21000 2010-11-01
2 Peter Gynn  23400 2008-03-25
3 Jolie Hope  26800 2007-03-14


[[2]]
[[2]][[1]]
    employee salary  startdate
1   John Doe  21000 2010-11-01
2 Peter Gynn  23400 2008-03-25
3 Jolie Hope  26800 2007-03-14

[[2]][[2]]
     employee salary  startdate
1   John Doe1  20000 2011-11-01
2 Peter Gynn1  25000 2009-03-25
3 Jolie Hope1  30000 2008-03-14

如果我要将列表“ mylist”分配给像这样的变量:-

testvar <- mylist

命令:-

str(testvar)

正确给出以下输出。

List of 2
 $ :List of 1
  ..$ :'data.frame':    3 obs. of  3 variables:
  .. ..$ employee : chr [1:3] "John Doe" "Peter Gynn" "Jolie Hope"
  .. ..$ salary   : num [1:3] 21000 23400 26800
  .. ..$ startdate: Date[1:3],format: "2011-11-01" "2009-03-25" "2008-03-14"

但是以下命令给出了错误:-

str(get(paste0("testvar","[[1]]")))

错误

Error in get(paste0("testvar","[[1]]")) : 
  object 'testvar[[1]]' not found

为什么上面的命令没有找到testvar对象,而该对象实际上是列表“ mylist”。我希望能够获得列表“ mylist”的第一项的结构(甚至是类)。我需要以编程方式进行操作,并且无法对其进行硬编码。

有什么建议吗?

最诚挚的问候

Deepak

解决方法

getmget仅返回在全局环境中创建的一个或多个对象。 "testvar"是使用值创建的对象,而“ testvar [[1]]”不是对象标识符,它只是list testvar的元素之一。因此,我们get对象标识符的值,并用list

提取[[元素
get("testvar")[[1]]

这类似于获取data.frame的列

data(mtcars)
get("mtcars") # // => works
get("mtcars[[1]]") # // => returns error

get(“ mtcars [[1]]”)错误:找不到对象'mtcars [[1]]'


不清楚为什么我们需要使用get。如果打算在mylist上循环,则可以使用lapply

lapply(mylist,function(innerlst) yourfun(innerlst))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?