【问题标题】:R code: How can I extract a column from a list of tibbles and use it as a parameter for functions?R 代码:如何从小标题列表中提取一列并将其用作函数的参数?
【发布时间】:2023-03-12 22:02:01
【问题描述】:

我有一个名为 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) 对象不能被强制输入 '双'"

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

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

【问题讨论】:

  • 您可以将"[" 更改为"[[" 以获取向量而不是tibble
  • 我已经尝试过了,但仍然作为我的小玩意回来了。我最终修复了它。

标签: r list lapply tibble


【解决方案1】:

是一个简单的修复。需要使用 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))

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2015-09-19
    相关资源
    最近更新 更多