简化R代码以将大数据导入为字符

时间:2015-10-26 11:08:33

标签: r

我目前经常使用下面的代码将大数据集导入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)

1 个答案:

答案 0 :(得分:1)

像@Roland建议的那样,你应该写一个函数。这是一种可能性:

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

相关问题