如何从R中的聚合函数解释此错误

时间:2014-10-20 23:35:39

标签: r dataframe aggregate

我需要一些关于聚合函数的帮助。这是我的数据:(它显示了三列,但我的理解是有两列,分别名为V1和V3。显示从330开始的数字的第一列是row.names。)

我想使用V1作为键,在V3上执行类似于mean的简单聚合函数。我有一种感觉我的数据类型不正确,但我不知道如何转换!

> testing
                        V1                 V3
330 chr1_10440000_11000000   1.59987556934357
335 chr1_10440000_11000000    89.185531616211
338 chr1_10440000_11000000   1.25018584728241
340 chr1_10440000_11000000   5.91385841369629
342 chr1_10440000_11000000   1.68633282184601
345 chr1_11000000_11240000  0.118176721036434
349 chr1_11000000_11240000     9.131010055542
350 chr1_11000000_11240000 0.0575727485120296
352 chr1_11000000_11240000   11.7410087585449
353 chr1_11000000_11240000   10.5057544708252
356 chr1_11000000_11240000   2.35379362106323
360 chr1_11240000_12040000   0.08041662722826
363 chr1_11240000_12040000   1.62903010845184
366 chr1_11240000_12040000  0.039043802767992
368 chr1_11240000_12040000   1.90981948375702
369 chr1_11240000_12040000   7.19360542297363
370 chr1_11240000_12040000   5.95961284637451
371 chr1_11240000_12040000   4.40743684768677
372 chr1_11240000_12040000  0.600234627723694
373 chr1_11240000_12040000   20.9832191467285
> 

以下是我尝试使用的代码以及相应的错误/警告消息:

> aggregate(testing, by=list(testing$V1), FUN=mean )
                 Group.1 V1 V3
1 chr1_10440000_11000000 NA NA
2 chr1_11000000_11240000 NA NA
3 chr1_11240000_12040000 NA NA
Warning messages:
1: In mean.default(X[[1L]], ...) :
  argument is not numeric or logical: returning NA
2: In mean.default(X[[2L]], ...) :
  argument is not numeric or logical: returning NA
3: In mean.default(X[[3L]], ...) :
  argument is not numeric or logical: returning NA
4: In mean.default(X[[1L]], ...) :
  argument is not numeric or logical: returning NA
5: In mean.default(X[[2L]], ...) :
  argument is not numeric or logical: returning NA
6: In mean.default(X[[3L]], ...) :
  argument is not numeric or logical: returning NA
> 

2 个答案:

答案 0 :(得分:3)

aggregate(V3 ~ V1, testing, FUN = function(x) mean(as.numeric(as.character(x))))

应该做的伎俩。在应用函数之前,变量将转换为数字变量。

答案 1 :(得分:1)

我在使用aggregate() 函数时遇到了同样的问题,在数据框的每个变量上单独使用mean() 工作正常(根本没有错误),但是在聚合函数中使用mean 会收到警告并返回NA 数据。用建议的解决方案解决了:

aggregate(.~Fecha, data=meteorologia, FUN = function(x) mean(as.numeric(as.character(x))))

运行版本

<块引用>

版本 _
平台 x86_64-apple-darwin17.0
拱形 x86_64
操作系统 darwin17.0
系统 x86_64,darwin17.0
状态
大四
次要 0.2
2020年
06月
第22天
SVN 修订版 78730
语言R
version.string R 版本 4.0.2 (2020-06-22) 昵称再次起飞