用于限制data.tables中文本字符串的显示长度的选项

时间:2016-10-27 08:56:08

标签: r data.table options

data.tables中的某些列可能包含很长的内容(nchar(。)很大)。这有时会使检查R中的整个data.table变得困难,因为它会在宽列之后中断。同时,可能仍然需要存储在宽列中的信息,因此简单地按照DT[, long_strings := substr(long_strings, 1, max_length)]的方式执行某些操作并不是一个好的解决方案。

因此,是否有一个选项可以控制文本的显示长度,以便使data.table中的文本列显示为比它们更密集?

2 个答案:

答案 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 个字符

希望这有帮助 =)