2014-04-01 56 views
0

我正嘗試使用complete.cases從文件中清除NA。R「complete.cases」對另一個不起作用?

我一直在使用本網站的幫助,但它不能正常工作,我不能確定我想要做什麼是可能的。

juulDataRaw <- read.csv(url("http://blah")); 
juulDataRaw[complete.cases(juulDataRaw),] 

我想這(從這裏的一個例子)

dog<-structure(list(Sample = 1:6 
,gene = c("ENSG00000208234","ENSG00000199674","ENSG00000221622","ENSG00000207604","ENSG00000207431","ENSG00000221312") 
,hsap = c(0,0,0,0,0,0) 
,mmul = c(NA,2,NA,NA,NA,1) 
,mmus = c(NA,2,NA,NA,NA,2) 
,rnor = c(NA,2,NA,1,NA,3) 
,cfam = c(NA,2,NA,2,NA,2)) 
,.Names = c("gene", "hsap", "mmul", "mmus", "rnor", "cfam"), class = "data.frame", row.names = c(NA, -6L)) 
dog[complete.cases(dog),] 

和工程。

  • 那麼我可以做?
  • 兩者有什麼區別?
  • 它們不都是數據框嗎?

回答

1

您對數字值有引號,以便將它們作爲因子讀入。這使得「NA」只是另一個字符串而不是R NA。

> juulDataRaw[] <- lapply(juulDataRaw, as.character) 
> juulDataRaw[] <- lapply(juulDataRaw, as.numeric) 
Warning messages: 
1: In lapply(juulDataRaw, as.numeric) : NAs introduced by coercion 
2: In lapply(juulDataRaw, as.numeric) : NAs introduced by coercion 
3: In lapply(juulDataRaw, as.numeric) : NAs introduced by coercion 
> juulDataRaw[complete.cases(juulDataRaw),] 
     age height igf1 weight 
55 6.00 111.6 98 19.1 
57 6.08 116.7 242 21.7 
61 6.26 120.3 196 24.7 
66 6.40 115.5 179 19.6 
69 6.42 115.6 126 20.6 
71 6.43 116.1 142 20.2 
80 6.61 130.3 236 28.0 
81 6.63 122.2 148 21.6 
83 6.70 126.2 174 26.1 
84 6.72 125.6 136 22.6 
85 6.72 121.0 164 24.4 
snipped remaining output..... 
相關問題