【问题标题】:lappy to call read.csv over a listlappy 通过列表调用 read.csv
【发布时间】:2015-05-16 13:47:45
【问题描述】:

我正在创建一个文件名列表new <- as.list(filename1),如下所示:

[[9]]
[1] "test/a.csv"

[[10]]
[1] "test/b.csv"

然后我正在编写下面的 lapply 以将每个文件加载到 data.frame(df) 假设 lapply 将为列表中的每个元素调用 read.csv

df <- lapply(new,read.csv)

但是当我检查 typeof(df) 时,它仍然是一个列表,将从我的文件中加载所有值。

为什么它不返回一个 data.frame 而不是一个列表?

【问题讨论】:

  • lapply 不返回 data.frame,因为根据定义它返回一个列表。
  • 因为它是lapply,即list-apply。你可以试试sapply。请注意,只有当您的数据具有适当的格式时,它才会起作用。

标签: r functional-programming dataframe lapply read.csv


【解决方案1】:

根据问题,我假设您想生成一个结合所有文件值的单个数据框。如果是这种情况(并且如果每个文件都包含相同顺序的相同列等),您可以尝试:

df <- Map(read.csv, new)
df2 <- do.call(rbind, df)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 2021-10-01
    相关资源
    最近更新 更多