将姓名添加到列表中

16 浏览
0 Comments

将姓名添加到列表中

我正在上传包含相同类型但不同值的多个文件。然后,我使用以下代码创建一个列表,以更轻松地管理数据:

filenames <- list.files(path = "D:/Paths",
                        pattern = "path-+.*txt")

paths <- lapply(filenames, function(x) read.delim(x, header=F))

但是,一旦执行第二个命令,paths 的名称就会消失。有什么建议可以保留列表中每个数据框的名称吗?

0
0 Comments

原因:问题的出现是因为在使用read.delim函数时,返回的结果是一个矩阵而不是列表,导致丢失了文件名信息。

解决方法:使用sapply函数代替lapply函数,并将simplify参数设置为FALSE,以确保返回一个列表而不是矩阵,从而保留文件名信息。

文章内容如下:

使用sapply函数可以默认保留名称。此外,不需要使用匿名函数,可以通过...header = F传递进去,如下所示:

paths = sapply(filenames, read.delim, header = F, simplify = FALSE)

simplify = FALSE确保你得到一个与lapply相同的list输出。)

好使了!非常感谢 Gregor!

0