2013-04-04 28 views
2

大家好,我的數據看起來象下面這樣:數列中的值作爲R數據幀編程

Product Price Quantity Returns 
Fridge $260 20  3 
Oven $150 12  #N/A 
Iron $100 #N/A  5 
Stove $150 20  #N/A 

我想R返回的次數「#N/A」出現在列返回。

感謝您的幫助。我是R新手,想要自學。

+0

值將這項工作? df $ [,4] [df [,4] ==「#N/A」] < - NA – 2013-04-05 07:53:34

回答

4
df$Returns[df$Returns == "#N/A"] <- NA 
sum(is.na(df$Returns)) 

應該做的伎倆。它首先檢查df$Returns的哪些值是NA。接下來我們使用sumTRUE被解釋爲1FALSE作爲0的事實以獲得NA的總數。

+2

爲什麼不直接:'sum(df $ Returns ==「#N/A」)'? – Arun 2013-04-04 13:22:50

+3

也有可能,但是轉換'#N/A'是很好的做法,例如。密謀例程知道如何處理。 – 2013-04-04 13:23:59

+0

+1清理步驟! – 2013-04-04 13:42:39

1

您可以申請tableReturns柱:

table(df$Returns) 

然後,您可以顯示一個特定的值是這樣的:

tab <- table(df$Returns) 
tab["#N/A"] 
0
Returns<- subset(df, df$Returns=="#N/A") 
nrow(Returns) 
0

存放在變量x你的數據幀,其第4列是Returns,你想要計算#NA的數量。

[R控制檯上運行命令:

table(is.na(x[,4])) 

,並採取TRUE