0

我使用readrread_delim是这样的:

focals <- read_delim('~/all_focals2.txt', delim='\t', 
                     col_names=c("1", "focal", "2", "model"),
                     col_types=cols_only(focal = col_double(), model = col_character()))

在我的数据中,“焦点”列包含以下数据:

55.0 mm
7.8 mm
16.0 mm

等等。我想以双精度获取数据,所以我想忽略“mm”后缀。

我发现了这个错误评论,这似乎表明这在今天实际上是不可能的readr,除非将列作为字符串读取,然后作为第二步进行转换。

但是,我只能假设必须有一种方法来编写自定义列规范,对吧?有可能编写自己的col_focal_length()函数,它建立在col_double()幕后,从一开始就实现正确的解析?

通过覆盖编辑解决方案:

focals$focal <- as.double(gsub(" mm$", "", focals$focal))

但正如我所说,我想从一开始就在数据集中拥有它......

4

1 回答 1

0

try this out:

        as.double(parse_number(focals$focal))

If this works let us know. Thank you

于 2017-08-16T17:35:41.870 回答