summaryBy无法正常工作

时间:2016-01-20 06:55:53

标签: r

我想计算变量Comment的空行数。有两个空单元格,因此rowcount应为2.

以下是关于样本数据的脚本。

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.但是,如果我分别运行sum(as.character(x)==“”),我可以得到空的rowcount为2.另一件我想要实现的是打印第一行。我把头部功能称为无法正常工作。

1 个答案:

答案 0 :(得分: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