В вопросе говорится, что файл нужно вывести в csv, но показанный вывод не является значениями через запятую (csv). Мы показываем оба.
Используя фрейм входных данных DF
, определенный в конце в примечании, воспроизводимым, создаем фрейм данных из заголовков и используем на нем Отдельные_строки и привязываем его к DF
. Затем сделайте все оставшиеся исправления. Запишите это без названий строк и столбцов и без кавычек. Замените stdout()
именем вашего файла.
library(dplyr)
library(tidyr)
DF2 <- DF %>%
names %>%
as.list %>%
as.data.frame %>%
separate_rows(everything()) %>%
setNames(names(DF)) %>%
rbind(DF)
DF2[2, 1] <- DF2[1, duplicated(unlist(DF2[1, ]))] <- ""
output <- capture.output(prmatrix(DF2, quote = FALSE,
rowlab = rep("", nrow(DF2)), collab = rep("", ncol(DF2))))[-1]
writeLines(output, stdout())
, указав следующее, которое воспроизводит вывод, показанный в вопросе:
Date Amy John
X Y X Y
March 14 15 10.5 14.5
April 10 11 15 16
Если вы действительно хотите использовать csv, тогда используйте это вместо writeLines
и заявление до него выше:
write.table(DF2, stdout(), sep = ",", quote = FALSE, row.names = FALSE,
col.names = FALSE)
, дающее:
Date,Amy,,John,
,X,Y,X,Y
March,14,15,10.5,14.5
April,10,11,15,16
Примечание
Lines <- "Date Amy_X Amy_Y John_X John_Y
March 14 15 10.5 14.5
April 10 11 15 16"
DF <- read.table(text = Lines, header = TRUE, strip.white = TRUE, as.is = TRUE)