2016-10-27 55 views
1

data.tables中的某些列可能具有很長的內容(nchar(。)很大)。這有時會使得很難檢查R中的整個data.table,因爲它會在寬列之後中斷。同時存儲在寬列中的信息可能仍然是需要的,所以簡單地按照DT[, long_strings := substr(long_strings, 1, max_length)]的方法做一些事情並不是一個好的解決方案。用於限制data.tables中文本字符串的顯示長度的選項。

因此,是否有一個選項可以控制文本的顯示長度,以便使data.table中的文本列顯示得比它們更密集?

+2

例如,如果您只想在不實際修改內容的情況下進行打印,您可以試試'DT [,lapply(.SD,substr,1,5)]''。你也可以使用'.SDcols'來指定'character' cols。 GH上還有一個關於'print.data.table'的問題,歡迎您訪問https://github.com/Rdatatable/data.table/issues/1523 –

回答

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))) 
+0

這是如何回答這個問題的? –

+0

我想我們搜索一種方法來控制表格的顯示長度。 –

+0

對'data.table' –