Let\'s have a dataframe with long strings in one column:
df<-data.frame(short=rnorm(10,0,1),long=replicate(10,paste(rep(sample(letters),runif(1,5,8)),collaps
You can redefine the print.data.frame
method, and in this function use substr
to trim your character vectors to the desired maximum length:
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)
}
Create data. Note my addition of stringsAsFactors=FALSE
:
df <- data.frame(
short=rnorm(10,0,1),
long=replicate(10,paste(rep(sample(letters),runif(1,5,8)),collapse="")),
stringsAsFactors=FALSE
)
Print 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