我在Mac上使用R 2.11,但我已經安裝了3.1.1版本。R和3.1.1的平均值和barplot故障
lala.csv是含有七個變量與每個85個觀測的數據幀,其中一些的NA
下面的代碼完全正在運行:
lala <- read.table("lala.csv", header=TRUE, sep=";", strip.white=TRUE, dec=".",
na.strings="NA")
mean(lala, na.rm=TRUE)
barplot(mean(lala, na.rm = TRUE))
但它不是了。
現在它返回的
In mean.default(lala, na.rm = TRUE) : argument is not numeric or logical: returning NA
我已閱讀有關的事實,read.csv /表並不如以前的工作均值(),所以我試圖
lala <- read.table("lala.csv", header=TRUE, sep=";", strip.white=TRUE, dec=".",
na.strings="NA", colClasses=c("numeric", "numeric", "numeric",
"numeric","numeric", "numeric",
"numeric"))
但是當我嘗試
is.numeric(lala)
它返回FALSE
最後,用下面的工作,並與sapply
colMeans(lala, na.rm=TRUE)
barplot(colMeans(lala, na.rm=TRUE))
但對我來說這是一個無感的功能意味着不會再對數據幀的工作。 有沒有其他的方法來得到我所擁有的?
謝謝
你能解釋一下爲什麼要更新你的代碼來使用' colMeans()'而不是'mean()'...? (你是否有一個巨大的代碼庫,難以更新,或者你是否受限於更新它?)如果你真的想要你可以編寫你自己的'mean'函數來屏蔽基本R中的函數,但這可能是一個壞主意。 – 2014-09-10 22:42:34
詳細閱讀「?mean」這個x參數的描述;或創建自己的數據框的意思,正如@BenBolker指出的,「mean.data.frame < - function(x,na.rm = FALSE)colMeans(x,na.rm)',then'mean(lala,na .rm = TRUE)'會按預期工作 – rawr 2014-09-10 23:20:26
@BenBolker是第一個原因:)。我將與colMeans()站在一起,我只是想知道是否有一種方法可以使事情像以前一樣工作,例如在調用read.table時。謝謝 !也rawr – lizrell 2014-09-11 09:37:42