48
A
回答
61
這樣的:在萌芽狀態這個
df[ df == "foo" ] <- NA
+12
請注意,如果你試圖用「foo」替換NA,反向('df [df == NA] =「foo」')將不起作用;您需要使用'df [is.na(df)] < - 「foo」' – 2013-05-08 22:05:57
57
的一種方法是,當你在第一個地方讀取數據到字符轉換爲NA。
df <- read.csv("file.csv", na.strings = c("foo", "bar"))
0
解決一個替代方法是如下:
for (i in 1:ncol(DF)){
DF[which(DF[,i]==""),columnIndex]<-"ALL"
FinalData[which(is.na(FinalData[,columnIndex])),columnIndex]<-"ALL"
}
2
另一種選擇是is.na<-
:
is.na(df) <- df == "foo"
注意,它的使用可能顯得有點反直覺的,但它實際上在右側的索引處將NA
值賦予df
。
+1
或相同的''is.na < - '(df,df ==「foo」)' – jogo 2017-04-27 14:09:07
0
這可能與dplyr
的mutate_all
和replace
來完成:
library(dplyr)
df <- data_frame(a = c('foo', 2, 3), b = c(1, 'foo', 3), c = c(1,2,'foobar'), d = c(1, 2, 3))
> df
# A tibble: 3 x 4
a b c d
<chr> <chr> <chr> <dbl>
1 foo 1 1 1
2 2 foo 2 2
3 3 3 foobar 3
df <- mutate_all(df, funs(replace(., .=='foo', NA)))
> df
# A tibble: 3 x 4
a b c d
<chr> <chr> <chr> <dbl>
1 <NA> 1 1 1
2 2 <NA> 2 2
3 3 3 foobar 3
相關問題
- 1. R:用NA代替低於閾值的數據幀中的所有值
- 2. R:使用NA替換多個數據幀中的多個值
- 3. 索引數據幀中的NA值
- 4. 數據幀中的R - NA值
- 5. 試圖用數值替換數據幀中的字符值,錯誤「無效因子水平,NA生成」
- 6. 從柱上用0在數據幀R替換NA值
- 7. R:從數據幀中刪除NA值
- 8. R:將數據幀中的值替換爲NA作爲佔位符
- 9. 用「ID」替換數據幀變量中的NA值與來自其他數據幀的值
- 10. 替換數據幀中的字符串
- 11. 替換「。」由NA在數據幀中「。」也用作十進制
- 12. 使用字符串中的數字替換數據幀列中的字符串
- 13. 用NULL替換數據幀中的值
- 14. 如何將數據幀中的特定值替換爲R中的NA?
- 15. OpenRefine:用NA代替錯過的值
- 16. 用所有列的NA代替負值?
- 17. 使用R中的Data.Table或Rcpp字符串快速替代NA
- 18. 用NA替換數據
- 19. 替換數據幀中包含字符的每個字符串
- 20. 用0代替h2o數據幀中的所有NULL值
- 21. NA中有R的數據幀
- 22. R-將第一個NA之後的數據幀行中的所有值替換爲NA
- 23. 在R中用字符串「未知」替換NA值
- 24. 在數據幀替換值
- 25. 使用字典替換數據幀列中的值
- 26. 用條件替換數據幀的值
- 27. 替換R數據幀中的值
- 28. R - 替換數據幀中的值
- 29. 替換數據幀中的值Python
- 30. 用其他數據幀的平均值代替多個列的數字
不要忘了重新定義列as.numeric()從‘富’切換幾個大字,以NA不會要挾整套設置爲數字。你必須強制它。 (如果這就是你正在做的) – 2010-07-28 22:15:31