gpt4 book ai didi

r - 如何使用 readxl 选择特定列和类型?

转载 作者:行者123 更新时间:2023-12-04 20:56:32 24 4
gpt4 key购买 nike

我正在尝试使用 解决将 xls 数据导入 R 的问题阅读 xl 包裹。具体的 xls 文件有 18 列和 472 行,前 7 行有需要跳过的描述性文本。我只想选择列 1,3,6:9 在 EDA 的 18 列中。它们具有混合类型,包括日期、数字和文本。

readxl 似乎无法直接导入非连续列。我的计划是先使用 skip =7 阅读整张纸,然后使用 select next step。但是,问题是readxl默认将日期类型猜测为数字。在 readxl 中有没有办法指定 col_types 按列名 ?

带有示例 xlsx 的可重现代码,用于解决演示。

    library(readxl)

xlsx_example <- readxl_example("datasets.xlsx")

# read the entire table
read_excel(xlsx_example)

# select specific column to name - following code does not work

read_excel(xlsx_example, col_types=col (Sepal.Length = "numeric"))

最佳答案

据我所知,您是 不是 能够指定col_types按列名。不过,可以只读取特定列。例如,
read_excel(xlsx_example, col_types=c("numeric", "skip", "numeric", "numeric", "skip"))
将导入第 1、3 和 4 列并跳过第 2 和 5 列。您可以为 18 列执行此操作,但我认为这有点难以跟踪将哪个列作为哪种类型导入。

另一种方法是使用 col_types = "text" 将所有列作为文本读取。然后按名称选择和转换变量。例如:

library(tidyverse)
library(readxl)
xlsx_example <- readxl_example("datasets.xlsx")
df <- read_excel(xlsx_example, col_types = "text")
df %>%
select(Sepal.Length, Petal.Length) %>%
mutate(Sepal.Length = as.numeric(Sepal.Length))
#> # A tibble: 150 x 2
#> Sepal.Length Petal.Length
#> <dbl> <chr>
#> 1 5.1 1.4
#> 2 4.9 1.4
#> 3 4.7 1.3
#> 4 4.6 1.5
#> 5 5.0 1.4
#> 6 5.4 1.7
#> 7 4.6 1.4
#> 8 5.0 1.5
#> 9 4.4 1.4
#> 10 4.9 1.5
#> # ... with 140 more rows

关于r - 如何使用 readxl 选择特定列和类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com