每行一行打印 R 数据框

Print R data frame one line per row

当使用 print 打印数据框时,我发现它停在某个宽度处,略短于 80 个字符,并且只打印适合的列。然后它继续打印接下来的这么多列。

是否可以让它打印一整行,而不管输出有多宽,没有换行符或点?

如果您使用 df <- as_tibble(df) 将您的 data.frame 转换为 tibble,您可以精确控制您想要打印 table 的方式:

library(tidyverse)

# example data
data <- iris %>% t() %>% as_tibble()

# print all columns
data %>% print(width = Inf)

# print all rows and all columns
data %>% print(width = Inf, n = Inf)

另见 https://tibble.tidyverse.org/reference/formatting.html

但是,只打印第一行和第一列是有原因的:打印数千行会变得非常混乱和缓慢。 您还可以 运行 View(data) 在新的 window 中探索 table。

您对另一个答案的评论表明您这样做是专门为了写入文件 - 这个答案就是这样做的,但根据您使用的是 R 还是 Rstudio,控制台中的显示可能会有所不同。

根据?options,控制台有 10,000 个字符宽度的硬性限制,只能通过重新编译 R 来增加。如果这对您的用例来说足够了,那么您可以这样做:

oldoptions <- options(width=10000)
options("width") #check that it's been set
#$width
#[1] 10000

sink("test.txt")  #append = TRUE might be useful for subsequent writes
print(a)  #Print the very wide dataframe
sink()

options(oldoptions) # reset the changed options

请注意,最初我认为当我在记事本中检查文件时这不起作用 - 那是因为(我的)记事本设置对行长度本身有限制,然后换行到下一行。使用更复杂的东西 (Notepad++) 查看表明它确实有效。