绑定 csv 文件时导入大量数字
Importing large numbers when binding csv files
尝试导入列超过最大整数 (.Machine$integer.max = 2147483647) 的数据时我的代码出现问题。使用 readr 的 read_csv 我相信它是导入为 NA 而不是四舍五入。复杂性来自于尝试使用 rbindlist 导入多个 csvs。
这是我当前的设置:
load_df_path <- file.path(".../dffolder") #path to folder
df_path_files <- list.files <- (load_df_path, full.names = TRUE) #list files in path
df <- rbindlist(lapply(df_path_files, read_csv)) # read in csvs using readr
如何编写最后一行来导入 csvs 并将列 "amount" 转换为字符而不是整数?
以下是我尝试过的一些方法,但都没有成功...
## This gets error: Error in switch(tools::file_ext(path)....
df <- rbindlist(lapply(df_path_files, read_csv(df_path_files, col_types = list(amount = col_character()))))
## recreate read_csv and changed col_types = NULL to the above but getting the warning
## Error in FUN(X[[i]], ...) : could not find function "read_delimited"
tl;dr - 在将特定列更改为字符格式或 int64 时需要帮助导入 csvs 列表。
谢谢。
你就快完成了,只是语法...
df_list <- lapply(df_path_files, read_csv, col_types = cols(amount = col_character()))
df <- rbindlist(df_list)
col_types
期望 NULL
或 cols
创建的东西。参见 ?read_csv
和 ?cols
。
另一个想法:也许强制执行 numeric
而不是 int
可能是一个解决方案:使用 cols(amount = col_double())
看这里:
long/bigint/decimal equivalent datatype in R
尝试导入列超过最大整数 (.Machine$integer.max = 2147483647) 的数据时我的代码出现问题。使用 readr 的 read_csv 我相信它是导入为 NA 而不是四舍五入。复杂性来自于尝试使用 rbindlist 导入多个 csvs。
这是我当前的设置:
load_df_path <- file.path(".../dffolder") #path to folder
df_path_files <- list.files <- (load_df_path, full.names = TRUE) #list files in path
df <- rbindlist(lapply(df_path_files, read_csv)) # read in csvs using readr
如何编写最后一行来导入 csvs 并将列 "amount" 转换为字符而不是整数?
以下是我尝试过的一些方法,但都没有成功...
## This gets error: Error in switch(tools::file_ext(path)....
df <- rbindlist(lapply(df_path_files, read_csv(df_path_files, col_types = list(amount = col_character()))))
## recreate read_csv and changed col_types = NULL to the above but getting the warning
## Error in FUN(X[[i]], ...) : could not find function "read_delimited"
tl;dr - 在将特定列更改为字符格式或 int64 时需要帮助导入 csvs 列表。
谢谢。
你就快完成了,只是语法...
df_list <- lapply(df_path_files, read_csv, col_types = cols(amount = col_character()))
df <- rbindlist(df_list)
col_types
期望 NULL
或 cols
创建的东西。参见 ?read_csv
和 ?cols
。
另一个想法:也许强制执行 numeric
而不是 int
可能是一个解决方案:使用 cols(amount = col_double())
看这里:
long/bigint/decimal equivalent datatype in R