【问题标题】:Specify col_type by name in lapply在 lapply 中按名称指定 col_type
【发布时间】:2018-08-20 11:09:04
【问题描述】:

我正在使用lapply 从 Excel 将多个文件读入 R。我刚刚注意到我的一些文件将data 列作为logical 而不是numeric 读入。

我想使用read_xlscol_types 参数,但我的文件有不同的列数,所以想按名称调用它们。

知道我该怎么做吗? 这就是我目前导入数据的方式:

file_list=list.files(file_location, pattern="^ID.*xls",full.names = T) 
import=lapply(file_list, function(x) read_xls(x, col_names = T))

【问题讨论】:

    标签: r multiple-columns lapply numeric


    【解决方案1】:

    您可以定义一个列表,其中包含您打算应用于每个传入 Excel 文件的各种 col_type 向量。然后,使用带有索引的lapply 来访问这些格式化向量:

    cols <- list(c("logical", "numeric", "text"), c("logical", "numeric"))
    
    lapply(seq_along(file_list), function(y, n, i) {
        read_xls(x, col_names=TRUE, col_types=cols[[i]])
    }, y=file_list, n=names(file_list))
    

    点击下面的链接查看一个小演示,展示基本前提应该有效。

    Demo

    【讨论】:

    • 谢谢 - 进行了一些小的调整以使其正常工作,但完全符合我的要求。
    猜你喜欢
    • 2013-07-09
    • 2012-05-10
    • 2012-04-14
    • 1970-01-01
    • 2020-10-18
    • 2012-11-18
    相关资源
    最近更新 更多