1

我正在从 xlsx ( https://www.dropbox.com/s/r5sn5pio5rnprdq/gesammelte%20Daten_1707.xlsx ) 文件中导入数据read.xlsx

setwd("C:/***//Kultivierungen//1707_ADH//")
pH <- read.xlsx("gesammelte Daten_1707.xlsx", sheetName="pH")
OD <- read.xlsx("gesammelte Daten_1707.xlsx", sheetName="OD")
Glc <- read.xlsx("gesammelte Daten_1707.xlsx", sheetName="Glucose")
Ac <- read.xlsx("gesammelte Daten_1707.xlsx", sheetName="Acetate")

我想删除NA

OD <- OD[rowSums(is.na(OD))==0,]
Glc <- Glc[rowSums(is.na(Glc))==0,]
Ac <- Ac[rowSums(is.na(Ac))==0,]
pH <- pH[rowSums(is.na(pH))==0,]

..这适用于ODandpH数据,但不适用于Acand Glc。删除NA值之前的结果如下所示:

  time.in.h               SPL1 SPL1_Error               SPL2 SPL2_Error               SPL3 SPL3_Error
1  0.000000               <NA>       <NA>               <NA>       <NA>               <NA>       <NA>
2  1.502222               <NA>       <NA>               <NA>       <NA>               <NA>       <NA>
3  3.687778 0.0602636534839925       0.06 0.0502197112366604       0.09 0.0301318267419962       0.03
4 10.248889                                                                                          
5 16.248333  0.118460019743337       0.06 0.0829220138203356       0.12  0.106614017769003       0.18
6 21.653056 0.0644511581067472       0.03 0.0161127895266868       0.15 0.0483383685800604       0.12
7 29.653333                                                                                          
8 37.652778                                                                                          
9 43.391667  0.342347696879643       0.18  0.271025260029718       0.18  0.727488855869242       0.24

在删除NA值之后..:

  time.in.h               SPL1 SPL1_Error               SPL2 SPL2_Error               SPL3 SPL3_Error
3  3.687778 0.0602636534839925       0.06 0.0502197112366604       0.09 0.0301318267419962       0.03
4 10.248889                                                                                          
5 16.248333  0.118460019743337       0.06 0.0829220138203356       0.12  0.106614017769003       0.18
6 21.653056 0.0644511581067472       0.03 0.0161127895266868       0.15 0.0483383685800604       0.12
7 29.653333                                                                                          
8 37.652778                                                                                          
9 43.391667  0.342347696879643       0.18  0.271025260029718       0.18  0.727488855869242       0.24

str()返回以下内容:

> str(Glc)
'data.frame':   9 obs. of  17 variables:
 $ time.in.h : num  0 1.5 3.69 10.25 16.25 ...
 $ SPL1      : Factor w/ 5 levels "","0.0602636534839925",..: NA NA 2 1 4 3 1 1 5
 $ SPL1_Error: Factor w/ 4 levels "","0.03","0.06",..: NA NA 3 1 3 2 1 1 4
 $ SPL2      : Factor w/ 5 levels "","0.0161127895266868",..: NA NA 3 1 4 2 1 1 5
 $ SPL2_Error: Factor w/ 5 levels "","0.09","0.12",..: NA NA 2 1 3 4 1 1 5

在使用不同的数据/xlsx 文件集之前它运行良好,我也尝试排除 xlsx 文件中的所有格式问题,但找不到任何东西......以前有人有过吗?

4

3 回答 3

0

我不完全确定您的问题是什么,但这里有一些修复:

您想用零替换 NA 值吗?在这种情况下,您可以尝试:

Glc[is.na(Glc)] <- 0

或者您想删除带有 NA 的观察结果?在这种情况下,前两个观察结果似乎工作正常。但是,例如,第四个观察似乎在 xlsx 文件中除了 NA 之外还有其他东西(零?)。

于 2013-08-20T13:19:39.413 回答
0

似乎 Glucose 和 Acetate-sheet 中的空单元格被识别为文本,尽管我不知道为什么(Excel 不是我的专长..)。

当我用 0 替换 xlsx 文件中的列中的空单元格然后我再次删除那些 0 时,read.xlsx确实将其导入为numeric向量而不是 afactor并将 NA 分配给空单元格。然后,您可以使用data <- data[rowSums(is.na(data))==0,]删除包含 NA 的行。

无法告诉您这里到底发生了什么,但上述解决方案似乎有效。

于 2013-08-20T13:42:50.533 回答
0

我遇到了同样的问题并解决了。在 Excel 中,使用“全部清除”而不是删除,然后保存您的 Excel 文件并将其导入 R。这样 R 不会显示任何 N/A。

于 2018-11-22T23:39:33.010 回答