Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R聚合函数_R_Aggregate - Fatal编程技术网

R聚合函数

R聚合函数,r,aggregate,R,Aggregate,当我在包含字符和数字列的data.frame上使用聚合函数时,聚合失败,只返回所有的NAs。我怎样才能解决这个问题?我的第一个想法是检查值类,但它不起作用 name <- rep(LETTERS[1:5],each=2) feat <- paste0("Feat",name) valuesA <- runif(10)*10 valuesB <- runif(10)*10 daf <- data.frame(ID=name,feature=feat,valueA=v

当我在包含字符和数字列的
data.frame
上使用聚合函数时,聚合失败,只返回所有的NAs。我怎样才能解决这个问题?我的第一个想法是检查值类,但它不起作用

name <- rep(LETTERS[1:5],each=2)
feat <- paste0("Feat",name)
valuesA <- runif(10)*10
valuesB <- runif(10)*10

daf <- data.frame(ID=name,feature=feat,valueA=valuesA,valueB=valuesB, stringsAsFactors = FALSE)


 aggregate(.~ID, data=daf,FUN=mean)

 aggregate(.~ID, data=daf,FUN=function(x){
   if(is.character(x)){
     return(NA)
   }else{ return(mean(x))}
 })

name
aggregate(.~ID,data=daf,FUN=mean)
对我来说很好。它返回值,而不是
NA
。在您的示例中,
功能
是类因素,而在您的实际问题中是字符。解决方案取决于您想对数据做什么。如果您选择
mean
作为函数,则无法在
feature
上计算它,因此您会得到NAs(如果feature是factor,就像您在这里的示例中一样,在内部被视为整数)。因此,这可能会起作用:
aggregate(.~ID,data=daf[-2],FUN=mean)
谢谢,我明白了,问题是为什么valueA和valueB的结果取决于特征是因子还是字符?若特征为类因子,则正确计算值A和值的平均值。如果特征是字符,那么一切都是NA。为什么?
aggregate(.~ID,data=daf,FUN=mean)
对我来说很好。它返回值,而不是
NA
。在您的示例中,
功能
是类因素,而在您的实际问题中是字符。解决方案取决于您想对数据做什么。如果您选择
mean
作为函数,则无法在
feature
上计算它,因此您会得到NAs(如果feature是factor,就像您在这里的示例中一样,在内部被视为整数)。因此,这可能会起作用:
aggregate(.~ID,data=daf[-2],FUN=mean)
谢谢,我明白了,问题是为什么valueA和valueB的结果取决于特征是因子还是字符?若特征为类因子,则正确计算值A和值的平均值。如果特征是字符,那么一切都是NA。为什么?