gpt4 book ai didi

r - 在 R 中打印长字符串数据帧

转载 作者:行者123 更新时间:2023-12-02 17:18:39 24 4
gpt4 key购买 nike

让我们有一列包含长字符串的数据框:

 df<-data.frame(short=rnorm(10,0,1),long=replicate(10,paste(rep(sample(letters),runif(1,5,8)),collapse="")))

如何打印数据框而不显示整个字符串?像这样的事情:

        short        long
1 0.2492880 ghtaprfv...
2 1.0168434 zrbjxvci...
3 0.2460422 yaghkdul...
4 0.1741522 zuabgxpt...
5 -1.1344230 mzhjtwcr...
6 -0.7104683 fcbhuegt...
7 0.2749227 aqyezhbl...
8 -0.4395554 azecsbnk...
9 2.2837716 lkgwzedf...
10 0.7695538 omiewuyn...

最佳答案

您可以重新定义 print.data.frame 方法,并在此函数中使用 substr 将字符向量修剪为所需的最大长度:

print.data.frame <- function (x, ..., maxchar=20, digits = NULL, quote = FALSE,
right = TRUE, row.names = TRUE)
{
x <- as.data.frame(
lapply(x, function(xx)
if(is.character(xx)) substr(xx, 1, maxchar) else xx)
)
base::print.data.frame(x, ..., digits=digits, quote=quote, right=right,
row.names=row.names)
}

创建数据。请注意我添加的 stringsAsFactors=FALSE:

df <- data.frame(
short=rnorm(10,0,1),
long=replicate(10,paste(rep(sample(letters),runif(1,5,8)),collapse="")),
stringsAsFactors=FALSE
)

打印data.frame:

print(df, maxchar=10)
short long
1 -0.6188273 cpfhnjmeiw
2 -0.0570548 bwcmpinedr
3 -0.5795637 dcevnyihlj
4 0.1977156 qzxlhvnarm
5 -1.9551196 aiflwtkjdq
6 -1.2429173 vlscerwhgq
7 -0.5897045 fziogkpsyr
8 0.4946985 pdeswloxcn
9 0.3262543 kxlofchszd
10 -1.8059621 wncaedpzty

关于r - 在 R 中打印长字符串数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com