gpt4 book ai didi

r - R:write.table的格式输出

转载 作者:行者123 更新时间:2023-12-04 12:00:29 25 4
gpt4 key购买 nike

是否可以使用write.table格式化输出?

我可以使用tab,sep = '\t'左对齐列,并可以使用两个选项卡sep = '\t\t'来增加列之间的间距。

理想情况下,我希望能够使列右对齐并使用比所提供的中间量大的间距
用“\t”和“\t\t”表示。使用sep = '\t '之类的东西会完全破坏列对齐。

我必须证明从使用许多不同表格式的许多不同文件中提取的大量数据。将R的输出文本文件的列间距与原始pdf文档中的列间距紧密匹配会大大提高打样的速度和准确性。

# example data to write to text file

aa = matrix(c(1000,110,10,1,
0,2000,20,2,
30,300,3000,30000), nrow=3, byrow=TRUE,
dimnames = list(NULL, c("C1", "C2", "C3","C4")))
aa

# left align columns using a tab

write.table(aa,file="c:/users/mark w miller/simple r programs/formatted_tablea.txt", na = 'NA', sep = '\t',
row.names = F, col.names = F)

# 1000 110 10 1
# 0 2000 20 2
# 30 300 3000 30000

# increase spacing between columns with two tabs

write.table(aa,file="c:/users/mark w miller/simple r programs/formatted_tableb.txt", na = 'NA', sep = '\t\t',
row.names = F, col.names = F)

# 1000 110 10 1
# 0 2000 20 2
# 30 300 3000 30000

# Here is an example of the desired right-aligned output
# format with an intermediate amount of spacing
# (3 spaces vs the 1 or 7 spaces used above):

# 1000 110 10 1
# 0 2000 20 2
# 30 300 3000 30000

# Maybe use cat somehow?

cat(file="c:/users/mark w miller/simple r programs/formatted_tablec.txt", aa, sep=c(' ', ' ', '\n'))

还是我必须写入一个csv文件并使用Excel打开输出文件?我宁愿避免使用Excel。还是我必须使用LaTex以所需的格式创建输出数据?

对不起,本周所有问题。

最佳答案

查看capture.outputprint的print.gap参数的组合是否足够:

capture.output( print(aa, print.gap=3), file="capture.txt")

C1 C2 C3 C4
[1,] 1000 110 10 1
[2,] 0 2000 20 2
[3,] 30 300 3000 30000

另一种策略是将write.matrix与 sep=" "(3个空格)参数一起使用。您将需要忽略不会正确显示的列标题:
require(MASS)
write.matrix(aa, file="capturemat.txt", sep=" ")

C1 C2 C3 C4
1000 110 10 1
0 2000 20 2
30 300 3000 30000

关于r - R:write.table的格式输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11163938/

25 4 0