【发布时间】:2020-09-14 03:37:33
【问题描述】:
我正在从服务器读取几个 SAS 文件并将它们全部加载到 R 中的列表中。我删除了其中一个数据集,因为我在最终分析中不需要它(日期集 #31)
mylist<-list.files("path" , pattern = ".sas7bdat")
mylist <- mylist[- 31]
然后我用 lapply 同时读取了列表(mylist)中的所有数据集
read.all <- lapply(mylist, read_sas)
代码运行良好。但是,当我运行 view(read.all) 查看数据集时,我只能看到一个数字(例如 1、2 等)而不是初始数据集的名称。
有谁知道我如何将数据集的名称保留在最终列表中?
另外,谁能告诉我如何在 R 中使用这个列表?
它是一个对象吗?我可以阅读列表的日期集之一吗?或者如何加入列表中的一些数据集?
【问题讨论】:
-
您好,使用不可复制的代码非常困难。您能否提供一个可复制的示例和所需输出的示例?仅基于当前的问题,也许this solution 可以帮助您。列表是对象的容器。您可以使用常用符号(
[]、[[]]、对象名称、相对位置等)访问列表中的对象。你会在互联网上找到很多教程(如this 或this 关于列表 -
你想要
names(read.all) <- mylist吗? -
sapply(newfi, read_sas, simplify=FALSE)的作用与lapply相同,但保留名称。 -
@RonakShah,对不起,我已经更正了代码。因此,我正在从服务器读取各种数据集并将它们放入列表(mylist)中。然后我使用 lapply(mylist, read_sas) 阅读它们 - 当我查看作为列表的最终产品 (read.all) 时,它只显示数字而不是导入数据集的名称。
-
@r2evans 感谢它正在工作,但它显示了数据集的整个路径,而不仅仅是日期集的名称。这是我在列表中导入的数据集之一看到的://xxxxxxxxxxxxxxxxxxxxxxxxxxxx/all_lift_batch.sas7bdat - 但我只需要查看数据集的名称,在这方面它是 all_lift_batch,没有路径地址,也没有 .sas7bdat跨度>
标签: r database list import lapply