Write.table с новой строкой после шаблона в каждой ячейке для Excel для удобного вывода - PullRequest
2 голосов
/ 19 марта 2020

У меня есть такие данные:

tt <- structure(list(A.T = structure(c(`4` = 2L, `5` = 3L, `6` = 1L
), .Label = c("2015(1583)", "2273(1876)", "4916(3954)"), class = "factor"), 
    A.G = structure(c(`4` = 2L, `5` = 1L, `6` = 3L), .Label = c("18645(2960)", 
    "6394(1409)", "8601(1275)"), class = "factor"), A.C = structure(c(`4` = 1L, 
    `5` = 3L, `6` = 2L), .Label = c("451(173)", "482(230)", "860(349)"
    ), class = "factor"), C.T = structure(c(`4` = 1L, `5` = 3L, 
    `6` = 2L), .Label = c("3885(3148)", "4042(3049)", "7772(5955)"
    ), class = "factor"), C.G = structure(c(`4` = 1L, `5` = 3L, 
    `6` = 2L), .Label = c("162(108)", "171(107)", "333(239)"), class = "factor"), 
    C.A = structure(c(`4` = 2L, `5` = 3L, `6` = 1L), .Label = c("1825(1481)", 
    "2118(1743)", "3449(2557)"), class = "factor"), G.T = structure(c(`4` = 2L, 
    `5` = 3L, `6` = 1L), .Label = c("2019(1794)", "2571(2336)", 
    "4538(4086)"), class = "factor")), class = "data.frame", row.names = c("4", 
"5", "6"))

Скажем, если я напишу эту таблицу как write.table(tt, "mynewcsv.csv", sep = "\t", quote = FALSE), а затем открою mynewcsv.csv в Excel, она будет выглядеть так:

enter image description here

Однако я хочу, чтобы моя таблица Excel выглядела следующим образом:

enter image description here

Что делать Мне нужно сделать так, чтобы mynewcsv.csv в Excel выглядело так, как я хочу?

1 Ответ

3 голосов
/ 19 марта 2020

Вы можете вставить символ новой строки, используя sub():

write.csv(sapply(tt, function(x) sub("(?<=\\d)(?=\\()", "\n", x, perl = TRUE)), "mynewcsv.csv",  quote = TRUE, row.names = FALSE)

После открытия в Excel, вам нужно выделить ячейки и включить «Wrap text» для его отображения правильно.

Конечный результат должен быть:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...