使用readxl::read_excel()导入数据时如何指定部分变量的列类型
问题
我有一个名为“my_data”的Excel表格,可在R中通过以下代码重建:
library(tibble); library(readxl) tibble(x = c(1L, 2L, 3L), y = c("A", "B", "C")) -> my_data
导入时我可以这样指定列类型:
read_excel("/Desktop/my_data.xlsx", col_types = c("numeric", "text")) -> my_data
但传入col_types的向量必须与表格列顺序一致才会生效,若表格列顺序变动、增删列,col_types就会失效。请问能否仅指定部分列的类型,其余列让read_excel自动推断?
解决方案
可以通过命名向量给col_types参数传值,无需匹配列顺序,仅指定目标列的类型,未指定的列会自动使用"guess"模式(即自动推断类型)。
示例用法
- 仅指定
x列为数值型,其余列自动推断:
read_excel("/Desktop/my_data.xlsx", col_types = c(x = "numeric")) -> my_data
- 指定多列类型,比如
x为数值型、y为文本型:
read_excel("/Desktop/my_data.xlsx", col_types = c(x = "numeric", y = "text")) -> my_data
这种方式下,即使Excel表格的列顺序调整、新增或删除未指定的列,指定列的类型设置依然有效,新增的列会自动推断合适的类型。
内容的提问来源于stack exchange,提问作者luciano
相关产品推荐
相关产品推荐

