создание идентичного форматирования после модификации текстового документа в R - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь изменить текстовый документ с определенной информацией заголовка, отдельной от фрейма данных:

Изображение документа: https://imgur.com/a/4qNAUM0

Копия документа: http://www.filedropper.com/elist

Я могу загрузить документ и отредактировать его:

data <- read.table('elist.txt')

d <- data[!(data$V3==1),] # removes pointless 1 triggers
d2 <- d[!(d$V3>199),] # removes probe triggers
d3 <- d2[!(d2$V3<4),] # removes probes more triggers
d4 <- d3[!(d3$V3 == shift(d3$V3)),] # removes duplicate triggers
d5 <- d4[!(d4$V3 == shift(d4$V3+1)),] # removes +1 duplicate triggers

Однако я не знаю, как экспортировать документ, поэтому он содержит ту же информацию заголовка - просто используя запись.Кажется, что функция table () не работает.

Мой вопрос: как изменить документы, сохранив форматирование, максимально возможное для оригинала?

1 Ответ

0 голосов
/ 27 февраля 2019

Вы можете прочитать начальные строки с помощью readLines

heading_text <- readLines('elist.txt') # read all lines
heading_text <- heading_text[grepl("^#", unlist(l))] # subset comment lines (starting with #)
heading_text <- trimws(gsub("^#|\\\t", " ", heading_text)) # trim whites, remove initial # and the tab separator flag (\t)

Вы можете выбрать строку заголовка с помощью regex.В этом случае я выбрал строку, в которой было слово item .Затем необходимо обрезать несколько белых строк и установить разделитель столбцов.

header <- gsub("\\s+", ",", heading_text[grepl("item", heading_text)])
header <- unlist(strsplit(header, ","))

Следует обратить внимание на тот факт, что данные не читаются правильно;Есть 12 столбцов, а длина вашего заголовка 11. Вам нужно это исправить.В этом примере я только что опустил последний столбец

data <- read.table('elist.txt')
data <- data[1:11]
names(data) <- header
head(data)
...