【问题标题】:Median of a data frame - problems coercing data to numeric数据框的中位数 - 将数据强制转换为数字的问题
【发布时间】:2014-06-09 09:32:20
【问题描述】:

我在 XLSX 文件 data.xlsxSheet1 中有以下数据集:

道具 1 道具 2 道具 3 值 1 值 2 值 3 A B C 1 2 3 东英 4 5 6 GH I 7 8 9

我正在通过xlsx package 读取数据

> df <- read.xlsx(
+     file = 'data.xlsx',
+     sheetName = 'Sheet1',
+     header = TRUE)

现在我想计算整个值集的中位数(1,...,9;跨第 1-3 行和第 4-6 列)。但是,我无法将数据强制为数字。

> median(as.numeric(df[,c(4:6)]))
Error in median(as.numeric(df[, c(4:6)])) : 
  (list) object cannot be coerced to type 'double'

如何确定这个集合的中位数?

【问题讨论】:

  • median(c(df)) 应该这样做。

标签: r excel dataframe median


【解决方案1】:

一种方法是在计算median之前解开或unlist数据框:

> df <- data.frame(
+     Prop1 = c('A','B','C'), Prop2 = c('D','E','F'), Prop3 = c('G','H','I'),
+     Value1 = c(1:3), Value2 = c(4:6), Value3 = c(7:9))
> df
  Prop1 Prop2 Prop3 Value1 Value2 Value3
1     A     D     G      1      4      7
2     B     E     H      2      5      8
3     C     F     I      3      6      9
> df.median <- median(unlist(df[,c(4:6)]))
> df.median
[1] 5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多