У меня есть следующий фрейм данных в R:
> dframe
Mean Median
Candidates 85.68 60
NonCands 9.21 4
Multi 27.48 17
Mono 4.43 3
Multi NonCands 22.23 15
Я хочу распечатать его в файл и сохранить его в красивом формате и выровнять, как показано выше. Я использую:
write.table(dframe,file="test",sep="\t", quote=F)
который производит следующий вывод:
Mean Median
Candidates 85.68 60
NonCands 9.21 4
Multi 27.48 17
Mono 4.43 3
Multi NonCands 22.23 15
Поскольку данные отображаются в правильном формате в среде R, я подумал, что их запись в файл с таким же форматом должна быть тривиальной. Видимо я ошибся. Я пробовал играть с format()
и write.matrix
из библиотеки MASS, но ни один из них не дал желаемого результата.
Я видел некоторые предложения, такие как этот, но он кажется слишком сложным и, что более важно, не дает желаемого результата при печати в файл с write.table()
.
Итак, как я могу распечатать свой фрейм данных в текстовый файл, чтобы он выглядел так же, как в R?
ОБНОВИТЬ
Следуя предложению Джастина из его комментария ниже, я установил библиотеку gdata и использовал write.fwf
. Это почти то, что мне нужно:
write.fwf(dframe,file="test",sep="\t", quote=F, rownames=T)
производит следующий вывод:
Mean Median
Candidates 85.68 60
NonCands 9.21 4
Multi 27.48 17
Mono 4.43 3
Multi NonCands 22.23 15
Итак, есть идеи о том, как сдвинуть «Среднее» и «Медиана» вправо, чтобы они выровнялись с соответствующими столбцами?
Поскольку сейчас это может быть актуально, вот как был создан data.frame:
labels<-c("Candidates","NonCands","Multi", "Mono", "Multi NonCands")
Mean <- c(mean(cands), mean(non),mean(multi),mean(mono),mean(multi_non))
Median <- c(median(cands), median(non),median(multi),median(mono),median(multi_non))
names(Mean)<-labels
dframe<-data.frame(Mean,Median)
write.fwf
из пакетаgdata
.fwf
обозначает файл с фиксированной шириной. однако, если шрифт, используемый для просмотра текстового файла, не имеет фиксированной ширины, он может быть нечетным. - person Justin   schedule 27.11.2012print.data.frame(... right=X)
позволяет установить этот параметр только глобально, поэтому требуется небольшая настройка). - person smci   schedule 26.06.2015