我目前经常使用下面的代码将大数据集导入R并强制它将所有内容视为字符,以避免截断行。代码似乎运行良好,但我想知道你们中是否有人知道它是如何被简化或改进的,所以每次我需要这样做都不会那么重复。
library(readr)
library(stringr)
dataset.path <- choose.files(caption = "Select dataset", multi = FALSE)
data.columns <- read_delim(dataset.path, delim = '\t', col_names = TRUE, n_max = 0)
data.coltypes <- c(rep("c", ncol(data.columns)))
data.coltypes <- str_c(data.coltypes, collapse = "")
dataset <- read_delim(dataset.path, delim = '\t', col_names = TRUE, col_types = data.coltypes)
答案 0 :(得分:1)
foo <- function(){
require(readr)
dataset.path <- choose.files(caption = "Select dataset", multi = FALSE)
data.columns <- read_delim(dataset.path, delim = '\t', col_names = TRUE, n_max = 0)
data.coltypes <- paste(rep("c", ncol(data.columns)), collapse = "")
dataset <- read_delim(dataset.path, delim = '\t', col_names = TRUE, col_types = data.coltypes)
}
然后,只要您需要使用此方法读取数据库,就可以调用foo()
。
你的两个班轮:
data.coltypes <- c(rep("c", ncol(data.columns)))
data.coltypes <- str_c(data.coltypes, collapse = "")
可以折叠为一行,只使用paste
包中的基础R str_c
代替stringr
。