2012-06-18 154 views
6

我經常使用reshape包中的cast()。幾乎每一次,此警告彈出:如何抑制來自cast()的警告消息

Aggregation requires fun.aggregate: length used as default

我試着設置options(warn =-1),無濟於事。如何抑制這些警告?

+1

我覺得'o ptions(「warn」)沒有效果,它實際上是由'message'而不是'warning'產生的。 'suppressMessages'可能有效,但我不知道如何在全球範圍內執行此操作。 – joran

回答

11

您可以手動指定fun.aggregate爲長度。

cast(your_inputs_to_cast, fun.aggregate = length) 
11

Aggregation requires fun.aggregate: length used as default

message不是warning - 讓你知道的功能決定東西給你。我認爲最好的選擇是@ Dason的答案 - 即手動指定此選項。

但是,如果你不想這樣做:

您可以通過包裝在suppressMessages

功能使用示例從cast

names(ChickWeight) <- tolower(names(ChickWeight)) 
chick_m <- melt(ChickWeight, id=2:4, na.rm=TRUE) 

suppressMessages(cast(chick_m, time ~ variable)) 

取消郵件或者你可以創建你自己的功能

cast_suppress <- function(...){suppressMessages(cast(...))} 
cast_suppress(chick_m, time ~ variable)