2016-01-20 2 views
0

Я хочу подсчитать пустые строки с переменной переменной Комментарий. Есть две пустые ячейки, поэтому значение строки должно быть равно 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 (х) == «») по отдельности, я могу получить пустой сверку как 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' не является фактором. –

+0

@ Паскаль Я это знаю. Я пытаюсь сказать, что R кодирует символы как факторы при создании кадров данных. –

+0

Тогда я согласен. По умолчанию 'data.frame' превращает символы в факторы. –

Смежные вопросы