如何强制readr将首列按字符型读取并自动推测其他列类型?
用readr::read_tsv读取特殊格式文件的解决方案
针对你的需求——读取第一列无列名、其余列有列名,且第一列为数字与文本混合类型的制表符文件,可通过以下方式实现:
基础实现:指定第一列类型,其余自动推测
readr会自动给无列名的第一列命名为X1,直接用col_types参数强制该列为字符型,其余列设为自动推测:library(readr) df <- read_tsv("你的文件路径.tsv", col_types = cols( X1 = col_character(), .default = col_guess() ))简洁写法:用字符代码快速指定
用字符代码按列顺序定义类型,c代表字符型,?代表自动推测,适合列数固定的场景:df <- read_tsv("你的文件路径.tsv", col_types = "c?")注:
c对应第一列,后续所有列均用?自动识别类型。自定义第一列列名的进阶写法
如果需要给第一列设置自定义名称,可先获取原有列名再补全,同时指定类型:# 获取原有列名(排除第一列的默认命名) original_colnames <- names(read_tsv("你的文件路径.tsv", n_max = 0))[-1] df <- read_tsv("你的文件路径.tsv", col_names = c("自定义列名", original_colnames), col_types = cols( `自定义列名` = col_character(), .default = col_guess() ))
内容的提问来源于stack exchange,提问作者user2165379
相关产品推荐
相关产品推荐

