Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中导入ODS文件的所有工作表,保留工作表的名称_R_List_Dplyr_Purrr_Ods - Fatal编程技术网

在R中导入ODS文件的所有工作表,保留工作表的名称

在R中导入ODS文件的所有工作表,保留工作表的名称,r,list,dplyr,purrr,ods,R,List,Dplyr,Purrr,Ods,我有这个LibreOffice计算(.ods)文件() 我想导入此文档的所有页面。在导入中,我将创建一个列表,其中列表的每个元素都是一张表。我希望列表元素的名称保留ODS文件中工作表的原始名称 我创建了以下代码: library(readODS) library(dplyr) library(purrr) library(tidyr) path <- "example.ods" mylist <- path %>% ods_sheets()

我有这个LibreOffice计算(
.ods
)文件()

我想导入此文档的所有页面。在导入中,我将创建一个列表,其中列表的每个元素都是一张表。我希望列表元素的名称保留ODS文件中工作表的原始名称

我创建了以下代码:

  library(readODS)
  library(dplyr)
  library(purrr)
  library(tidyr)

  path <- "example.ods"

  mylist <- path %>%
    ods_sheets() %>%
    set_names() %>%
    map(read_ods, skip = 1, path = path)

我如何解决这个问题来创建一个包含命名为原始表的元素的列表?

由于我不愿意从Google Drive下载一个随机文件,我为此设置了自己的示例ODS文件,其中有两个表,“foo”和“bar”,如下所示:

foo

a b
1 2
3 4

bar

a b
7 6
5 4
因此,您的代码有一些问题。第一个错误是,您需要两个参数来设置\u name()。这里的另一个问题是,您没有为
map()
同时指定
.x
.f
。我们可以通过如下中间赋值步骤解决这些问题:

library(readODS)
library(dplyr)
library(purrr)
library(tidyr)

path <- "test.ods"

sheets <- ods_sheets(path)
mylist <- map(seq_along(sheets), read_ods, path = path) %>%
    set_names(sheets)
mylist

$foo
  a b
1 1 2
2 3 4

$bar
  a b
1 7 6
2 5 4
库(readODS)
图书馆(dplyr)
图书馆(purrr)
图书馆(tidyr)
路径
library(readODS)
library(dplyr)
library(purrr)
library(tidyr)

path <- "test.ods"

sheets <- ods_sheets(path)
mylist <- map(seq_along(sheets), read_ods, path = path) %>%
    set_names(sheets)
mylist

$foo
  a b
1 1 2
2 3 4

$bar
  a b
1 7 6
2 5 4