2016-01-20 47 views
0

我想計算變量Comment的空rowcounts。有兩個空單元,所以rowcount應該是2.summaryBy無法正常工作

以下是我對示例數據的腳本。

Temp data: 
Comment  Prob 
1  fa 0.40768666 
2  fsa 0.61956024 
3     NA 
4   0.12916298 
5 fasdf 0.09724928 
6  rew 0.47395962 

c_fun <- function(x){c(example=head(x,n=1),mcnt=sum(as.character(x)==""))} 
summaryBy(Comment~., data= temp, FUN= c_fun) 

結果mcnt給我0。但是,如果我運行總和(as.character(X)==「」)分開,我可以得到空行數爲2。我要實現的另一件事是打印第一行。我也稱頭功能不正常。

+0

請給出'dput(your_dataframe)'的結果,即編輯你的問題! – jogo

回答

1

我猜這個問題可能是由於R編碼字符在創建數據幀時作爲因素造成的。請參閱以下比較。

temp <- data.frame(Comment=c("fa", "fsa", "", "", "fasdf", "rew"), 
        Prob=c(0.40768666, 0.61956024, NA, 0.12916298, 0.09724928, 0.47395962), 
        stringsAsFactors = TRUE) 

c_fun <- function(x){c(example=head(x,n=1),mcnt=sum(as.character(x)==""))} 
summaryBy(Comment~., data= temp, FUN= c_fun) 
# Comment.example Comment.mcnt 
# 1    2   0 

temp <- data.frame(Comment=c("fa", "fsa", "", "", "fasdf", "rew"), 
        Prob=c(0.40768666, 0.61956024, NA, 0.12916298, 0.09724928, 0.47395962), 
        stringsAsFactors = FALSE) 
summaryBy(Comment~., data= temp, FUN= c_fun) 
# Comment.example Comment.mcnt 
# 1    fa   2 
+0

R將字符編碼爲因子不是問題。 'x < - 「jdjdfjjf」'。 'x'不是一個因素。 – 2016-01-20 07:50:38

+0

@Pascal我知道。我試圖說R在創建數據幀時將字符編碼爲因素。 –

+0

然後我同意。默認情況下,'data.frame'將字符轉換爲因子。 – 2016-01-20 09:15:29