Рассмотрим read.delim
, который, подобно read.csv
, входит в число оболочек для более общей функции read.table
во встроенном пакете utils
.
Появляется более длинные поля, DrugName и ActiveIngredient , есть проблемы с кавычками и пустыми строками, требующие корректировки аргументов fill , quote , comment_char .
df <- read.delim(unz(temp, "Products.txt"), sep="\t", header= TRUE)
С выходом структуры:
str(df)
# 'data.frame': 37850 obs. of 8 variables:
# $ ApplNo : int 4 159 552 552 552 552 552 552 552 552 ...
# $ ProductNo : num 4 1 1 2 3 4 5 7 8 9 ...
# $ Form : Factor w/ 348 levels "AEROSOL, FOAM;RECTAL",..: 203 331 121 121 121 121 121 121 121 121 ...
# $ Strength : Factor w/ 4065 levels ""," EQ 5MG BASE/ML",..: 525 2491 1453 2240 2447 538 654 670 538 2447 ...
# $ ReferenceDrug : int 0 0 0 0 0 0 0 0 0 0 ...
# $ DrugName : Factor w/ 7161 levels "8-HOUR BAYER",..: 4773 6039 3547 3547 3547 3547 3547 3546 2796 2796 ...
# $ ActiveIngredient : Factor w/ 2735 levels "ABACAVIR SULFATE",..: 1372 2446 1305 1305 1305 1305 1305 1305 1305 1305 ...
# $ ReferenceStandard: int 0 0 0 0 0 0 0 0 0 0 ...
Эквивалентно read.table
, настройка значений по умолчанию в аргументах:
df <- read.table(unz(temp, "Products.txt"), sep="\t", quote = "\"", fill = TRUE,
comment.char = "", header= TRUE)
Для сравнения:
df1 <- read.table(unz(temp, "Products.txt"), sep="\t", quote = "\"", fill = TRUE,
comment.char = "", header= TRUE)
df2 <- read.delim(unz(temp, "Products.txt"), sep="\t", header= TRUE)
all.equal(df1, df2)
# [1] TRUE
identical(df1, df2)
# [1] TRUE