首页 > 解决方案 > R 代码:如何从小标题列表中提取一列并将其用作函数的参数?

问题描述

我有一个名为 CCLF_Details 的 9 个小标题列表。每个 Tibble 被命名为 CCLF1_Details-CCLF9_Details。我在每个小标题中都有列“COLUMN_LABEL”和“COLUMN_WIDTH”。我想将这些列用作 read_fwf 的参数。

到目前为止我已经完成了

width <- lapply(CCLF_details, "[","COLUMN_WIDTH", drop = FALSE)
label <- lapply(CCLF_details, "[","COLUMN_WIDTH", drop = FALSE)

但是当我通过 read_fwf 运行它时,我得到了

“fwf_widths(width) 中的错误:(list) 对象不能被强制输入‘double’”

在检查“宽度”时,它声明它是一个包含一列(并且该列是数字)的小标题列表,而不是数字向量列表。

如何以可以将列表作为 Map 函数的参数运行的格式获取列?

标签: rlistlapplytibble

解决方案


是一个简单的修复。需要使用 sapply 代替

width <- sapply(CCLF_details, "[","COLUMN_WIDTH", drop = FALSE)
label <- sapply(CCLF_details, "[","COLUMN_WIDTH", drop = FALSE)

然后可以使用它作为 read_fwf 的参数

fwf_widths(widths = as.vector(width), col_names = as.vector(label))

推荐阅读