Мне нужно импортировать текстовый файл со следующим шаблоном:
"A" "B" "C" "D" "E" "F" "G" "H" "I""1" 1 "7-201-2012-30" "201" "2011" 0 NA 0 14190 "01-01-1970""2" 2 "7-201-2012-101" "201" "2011" 0 NA 0 14190 "01-01-1970""3" 3 "7-203-2031-19" "203" "2032" 0 NA 0 14190 "01-01-1970""4" 4 "7-203-2031-23" "203" "2032" 0 NA 0 14190 "01-01-1970""5" 5 "7-203-2031-26" "203" "2032" 0 NA 0 14190 "01-01-1970""6" 6 "7-201-2012-57" "201" "2011" 0 NA 0 14190 "01-01-1970""7" 7 "7-201-2012-58" "201" "2011" 0 NA 0 14190 "01-01-1970""8" 8 "7-201-2012-64" "201" "2011" 0 NA 0 14190 "01-01-1970""9" 9 "7-201-2012-67" "201" "2011" 0 NA 0 14190 "01-01-1970""10" 10 "7-201-2012-74" "201" "2011" 0 NA 0 14190 "01-01-1970""11" 11 "7-201-2012-77" "201" "2011" 0 NA 0 14190 "01-01-1970""12" 12 "7-201-2012-78" "201" "2011" 0 NA 0 14190 "01-01-1970""13" 13 "7-201-2012-80" "201" "2011" 0 NA 0 14190 "01-01-1970""14" 14 "7-201-2012-85" "201" "2011" 0 NA 0 14190 "01-01-1970""15"
Это не полный файл, но остальное продолжается по этому шаблону. Каждый пробел или табуляция указывает новый столбец до строки «1» («2», «3», ..., «15»). После этого должен начаться новый ряд. У меня нет опыта программирования на R, но я обнаружил аналогичную проблему на этом форуме, где строки были разделены обратными косыми чертами. Вот как они это решили:
data = paste(scan("Einzelteil_T35.txt",what="character"),collapse='') ## Read the file
dmat = matrix(strsplit(data,"\\\\")[[1]],ncol=15,byrow=T) ## Convert it to a matrix
dmat[,15] = gsub("\".*[0-9]\"","",dmat[,15]) ## Remove the next line number from the values of the last column
colnames(dmat)=dmat[1,] ## Take first line as names
dmat = dmat[-1,] ## Remove first line (as it contained the names)
df = as.data.frame(dmat)
df
К сожалению, мне не удалось настроить код так, чтобы он работал с моим txt-файлом. Если бы вы могли помочь мне скорректировать код или показать мне совершенно другой подход, который работает, я был бы очень благодарен.