簡體   English   中英

數據框的中位數-將數據強制轉換為數字的問題

[英]Median of a data frame - problems coercing data to numeric

我在XLSX文件data.xlsx Sheet1中設置了以下數據:

在此處輸入圖片說明

Prop1   Prop2   Prop3   Value1  Value2  Value3
A       B       C       1       2       3
D       E       F       4       5       6
G       H       I       7       8       9

我正在通過xlsx讀取數據

> 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之前解開或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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM