2010-07-24 64 views
1

我得到了下面的一段代碼,它一直在打印頻率表。我如何阻止它這樣做。如何從打印輸出中停止一段R代碼?

pl = read.csv("c:/pl.csv") 
freqs = function(name){ assign(name, table(pl[,name],pl$bad_outcome), envir = .GlobalEnv);} 
lapply(names(pl), freqs); 
+0

也許不恰當的位置,但'invisible'功能用於抑制印刷。 – 2010-07-26 10:34:49

回答

2

你有三個選擇:

1)分配輸出,因爲你看到的是「打印」的實際上僅是一個回報。

x <- lapply(names(pl), freqs) 

2)在plyr中使用l_ply函數。

library(plyr) 
l_ply(names(pl), freqs) 

3)不要做lapply內部分配,但attach做到算賬:

x <- lapply(names(pl), function(name) table(pl[,name],pl$bad_outcome)) 
attach(x) 
+0

關於3),請注意,應該小心使用「attach(object)」。反覆使用它可能會導致問題,而不適當使用「分離(對象)」 – nullglob 2010-07-24 20:34:18