data.tables中的某些列可能包含很长的内容(nchar(。)很大)。这有时会使检查R中的整个data.table变得困难,因为它会在宽列之后中断。同时,可能仍然需要存储在宽列中的信息,因此简单地按照DT[, long_strings := substr(long_strings, 1, max_length)]
的方式执行某些操作并不是一个好的解决方案。
因此,是否有一个选项可以控制文本的显示长度,以便使data.table中的文本列显示为比它们更密集?
答案 0 :(得分:0)
# create some data
library("data.table")
out <- NULL
a <- (round(runif(20,1,50)))
for(z in 1:length(a)){
b <- paste(sample(c(letters[], rep(" ", 5)), a[z], replace = T), collapse="")
out <- c(out, b)
}
DT = data.table(x=out, y=c(1,3), v=1:10)
# notice that its difficult to maintain an overview
DT
# a way to see only the first 5 characters of all elements
View(as.data.frame(substr(as.matrix(DT), 1,5)))
答案 1 :(得分:0)
你可以在 dt 表中使用 javasript
datatable(df, options = list(scrollX = TRUE, columnDefs = list(list(
targets = "_all",render = JS(
"function(data, type, row, meta) {",
"return type === 'display' && data.length > 70 ?",
"'<span title=\"' + data + '\">' + data.substr(0, 70) + '...</span>' : data;",
"}")
)))))
df 是你的数据框。 此代码限制为 70 个字符
希望这有帮助 =)