在 lapply 中按名称指定 col_type
Specify col_type by name in lapply
我正在使用 lapply
从 Excel 将多个文件读入 R。我刚刚注意到我的一些文件中 data
列被读取为 logical
而不是 numeric
。
我想使用 read_xls
的 col_types
参数,但我的文件有不同的列数,所以想按名称调用它们。
知道我该怎么做吗?
这就是我目前导入数据的方式:
file_list=list.files(file_location, pattern="^ID.*xls",full.names = T)
import=lapply(file_list, function(x) read_xls(x, col_names = T))
您可以定义一个列表,其中包含您打算应用于每个传入 Excel 文件的各种 col_type
向量。然后,将 lapply
与索引一起使用,以访问这些格式化向量:
cols <- list(c("logical", "numeric", "text"), c("logical", "numeric"))
lapply(seq_along(file_list), function(y, n, i) {
read_xls(x, col_names=TRUE, col_types=cols[[i]])
}, y=file_list, n=names(file_list))
按照下面的 link 进行小演示,显示基本前提应该有效。
我正在使用 lapply
从 Excel 将多个文件读入 R。我刚刚注意到我的一些文件中 data
列被读取为 logical
而不是 numeric
。
我想使用 read_xls
的 col_types
参数,但我的文件有不同的列数,所以想按名称调用它们。
知道我该怎么做吗? 这就是我目前导入数据的方式:
file_list=list.files(file_location, pattern="^ID.*xls",full.names = T)
import=lapply(file_list, function(x) read_xls(x, col_names = T))
您可以定义一个列表,其中包含您打算应用于每个传入 Excel 文件的各种 col_type
向量。然后,将 lapply
与索引一起使用,以访问这些格式化向量:
cols <- list(c("logical", "numeric", "text"), c("logical", "numeric"))
lapply(seq_along(file_list), function(y, n, i) {
read_xls(x, col_names=TRUE, col_types=cols[[i]])
}, y=file_list, n=names(file_list))
按照下面的 link 进行小演示,显示基本前提应该有效。