gpt4 book ai didi

r - 使用 R 跨文件夹中的文件错误 map_df

转载 作者:行者123 更新时间:2023-12-04 09:08:32 25 4
gpt4 key购买 nike

所以我有一个文件夹,其中每个文件都是“几乎”相同的 CSV 文件。他们每个看起来都像:

EMP ID  WORK DATE   WORK HOURS   JOB TITLE  MGMT CTR
002 01/02/2019 8 Janitor 44
003 01/03/2019 29 Analyst 044
004 01/02/2019 400 Barber 2
...
我说几乎是因为其中一些有一些额外的变量,但我只关心其中的两个。
使用以下代码,我理论上可以根据 WORK DATE 将它们组合在一起并组合在一起。和 WORK HRS (我关心的两个变量)。
test <- list.files(path = "path", full.names = TRUE) %>%
map_dfr(read.csv) %>%
select(WORK.DATE,WORK.HRS) %>%
group_by(WORK.DATE) %>%
summarize(hour_sum = sum(WORK.HRS))
我这样做了,但出现错误:
Error: Can't combine `..1$JOB.NUM` <double> and `..2$JOB.NUM` <character>.
这些变量似乎来自一两个奇怪的文件。但我不需要它们,我认为 select 语句会有所帮助......它没有。我试过 readrread_csv .
test <- list.files(path = "path", full.names = TRUE) %>%
map_dfr(read_csv) %>%
select(`WORK DATE`,`WORK HRS`) %>%
group_by(`WORK DATE`) %>%
summarize(hour_sum = sum(`WORK HRS`))
并得到类似的错误:
Error: Can't combine `MGMT CTR` <double> and `MGMT CTR` <character>.
真的我只关心这两个变量,只要 WORK DATE是一个字符或日期和 WORK HRS是一个整数,我们很好。

最佳答案

问题是某些数据集的列与类型不匹配。一个选项将在 map_df 内转换为单一类型然后改变类型

library(dplyr)
library(purrr)
library(readr)
library(lubridate)
list.files(path = "path", full.names = TRUE) %>%
map_dfr(~ read_csv(.x) %>%
mutate(across(everything(), as.character))) %>%
select(`WORK DATE`,`WORK HRS`) %>%
type.convert(as.is = TRUE) %>%
group_by(`WORK DATE` = mdy(`WORK DATE`)) %>%
summarize(hour_sum = sum(`WORK HRS`)) # assume that "WORK HRS" is numeric

关于r - 使用 R 跨文件夹中的文件错误 map_df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63401580/

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