2009-07-23 40 views
57

Điều này có vẻ mang tính nam tính, nhưng nó ảnh hưởng đến năng suất của tôi. Tôi đang sử dụng R trong chế độ đầu cuối trên Linux. Không giống như Windows IDE, Linux giới hạn số lượng cột thành 80, do đó làm cho việc kiểm tra các tập dữ liệu khó hơn. Có cách nào để đặt số cột tối đa không?Cách tăng số lượng cột bằng cách sử dụng R trong Linux

+0

Vì vậy, không ai trong số các giải pháp này dường như làm việc cho StatET? –

Trả lời

52

Đây là một chức năng tôi có trong ~/.Rprofile tập tin của tôi:

wideScreen <- function(howWide=Sys.getenv("COLUMNS")) { 
    options(width=as.integer(howWide)) 
} 

Gọi chức năng mà không có sự tranh luận howWide đặt cột là chiều rộng của thiết bị đầu cuối của bạn. Bạn có thể tùy chọn vượt qua trong đối số để đặt chiều rộng thành số tùy ý bạn chọn.

Hầu như đề nghị của Josh, nhưng ít ma thuật :-)

+0

Ít ma thuật, nhưng tốt hơn. Thực hiện tốt. –

+2

Nó chỉ ra rằng Josh làm việc nếu bạn thực sự muốn làm điều này từ '.Rprofile', nhưng điều này thì không. Rõ ràng 'Sys.getenv (" COLUMNS ")' không hoạt động khi '.Rprofile' được chạy. Vì vậy, câu trả lời này chỉ hữu ích nếu bạn không muốn 'wideScreen()' được gọi tự động. –

+0

Nếu bạn muốn gọi 'wideScreen()' từ .Rprofile để nó được gọi tự động, bạn phải chắc chắn đó là biến môi trường. Thử gõ 'env | grep COLUMNS' vào thiết bị đầu cuối và nếu bạn không thấy gì, hãy thêm 'xuất COLUMNS' vào tệp .bash_rc của bạn. – Garrett

0

Bạn có thể sử dụng gui TK, tôi nghĩ tùy chọn là --ui=TK hoặc một cái gì đó như thế này.

Hoặc là một yêu cầu khó để sử dụng nó trong thiết bị đầu cuối?

37

Set nó với một cái gì đó giống như

options("width"=200) 

mà là trong thực tế những gì tôi có trong ~/.Rprofile. Xem trợ giúp (tùy chọn) để biết chi tiết.

16

Đánh cắp ý tưởng từ utilnd của Brendan O'Connor. (http://github.com/brendano/dlanalysis/blob/master/util.R), bạn có thể lấy thiết bị đầu cuối R để đặt chiều rộng mặc định bằng lệnh stty. Remunging kịch bản của mình để làm việc trên Linux, bạn sẽ có được sexy 1 lót sau:

options(width=as.integer(system("stty -a | head -n 1 | awk '{print $7}' | sed 's/;//'", intern=T))) 
+3

Chết tiệt rằng một lớp lót là sexy. –

+2

Đối với mac 10.8.5, nó là 'tùy chọn (width = as.integer (hệ thống (" stty -a | head -n 1 | awk '{print $ 6}' ", intern = T)))' – Alan

+0

Xem thêm câu trả lời bởi @plhn bằng cách sử dụng 'tput cols' trong một cuộc gọi hệ thống. – steveb

7

tôi sử dụng này:

wideScreen <- function(howWide=as.numeric(strsplit(system('stty size', intern=T), ' ')[[1]])[2]) { 
    options(width=as.integer(howWide)) 
} 

Bởi vì biến COLUMNS môi trường, và tset, không được cập nhật khi cửa sổ được thay đổi kích cỡ, nhưng stty size là.

+0

Điều này có vẻ là cách tiếp cận mạnh mẽ nhất. Thật không may nó không hoạt động trên Windows… nhưng tôi có thể sống với điều đó. –

7

Chèn dòng này để bạn ~/.Rprofile

options(width=system("tput cols", intern=TRUE)) 
Các vấn đề liên quan