Bazı sayısal sütunlara sahip bir veri çerçevem var. Bazı satırlar, istatistiksel analizde null olarak düşünülmesi gereken bir 0 değerine sahiptir. R'de tüm 0 değerini NULL olarak değiştirmenin en hızlı yolu nedir?Tüm 0 değerlerini NA
cevap
NA 0 değiştirilmesi:
df[df == 0] <- NA
Eşdeğer sözdizimi bir data.table nesnesi için ne olurdu? – dadrivr
Çok sayıda oy aldığınızı görüyorum ancak bunun
#Sample data
set.seed(1)
dat <- data.frame(x = sample(0:2, 5, TRUE), y = sample(0:2, 5, TRUE))
#-----
x y
1 0 2
2 1 2
3 1 1
4 2 1
5 0 0
#replace zeros with NA
dat[dat==0] <- NA
#-----
x y
1 NA 2
2 1 2
3 1 1
4 2 1
5 NA NA
[<-
fonksiyonu olmayan bir alternatif yol:
(shamelessly Chase'in yanıt @ kopyalanmış) örnek bir veri çerçevesi dat
:
dat
x y
1 0 2
2 1 2
3 1 1
4 2 1
5 0 0
Sıfırlarile değiştirilebilir is.na<-
işlev tarafından 83.210: Yalnızca sayısal alanlarda NA
ile 0
yerini alabilir
is.na(dat) <- !dat
dat
x y
1 NA 2
2 1 2
3 1 1
4 2 1
5 NA NA
(yani faktörlere gibi şeyler) hariç olmak üzere, ama bir sütun bazında sütunda bazında çalışır:
col[col == 0 & is.numeric(col)] <- NA
bir fonksiyonu ile, bütün veri çerçevesine bu uygulayabilirsiniz:
changetoNA <- function(colnum,df) {
col <- df[,colnum]
if (is.numeric(col)) { #edit: verifying column is numeric
col[col == -1 & is.numeric(col)] <- NA
}
return(col)
}
df <- data.frame(sapply(1:5, changetoNA, df))
değiştirmek olabilir rağmen Veri çerçevenizdeki sütun sayısı veya 1:ncol(df)
ile 1:5
.
Bunun doğru çözüm olduğundan emin değilim. 6 ve daha fazlası sütunlara ne dersiniz? Kesilecekler. – userJT
Bu yüzden '1: 5' yerine '1: ncol (df) 'ile değiştirmeyi önerdim. Denklemi aşırı karmaşık veya zor okumak istemedim. –
ama 6 ve 7 sütunlarında - veri türü char ve değiştirme yapılmamalıdır. Benim sorunumda, sadece 12 ila 15 sütunlarda değiştirmeye ihtiyacım var ama bütün df 21 sütun içeriyor (pek çoğuna dokunulmamalıdır). – userJT
Veri dosyanızın farklı veri türleri karışımı olduğunu ve tüm sütunların değiştirilmesinin gerekmediğini varsayalım.
sadece bunu, (toplam 21), 18 tek sütunlar 12 değiştirmek için budf[, 12:18][df[, 12:18] == 0] <- NA
birisi bunun Data.Table sürümü için istedi ve verilen nedeniyle data.frame çözüm değildir çünkü data.table ile çalışıyorum, aşağıdaki çözümü sağlarım. >DT[x == 0, x := NA]
library("data.table")
status = as.data.table(occupationalStatus)
head(status, 10)
origin destination N
1: 1 1 50
2: 2 1 16
3: 3 1 12
4: 4 1 11
5: 5 1 2
6: 6 1 12
7: 7 1 0
8: 8 1 0
9: 1 2 19
10: 2 2 40
status[N == 0, N := NA]
head(status, 10)
origin destination N
1: 1 1 50
2: 2 1 16
3: 3 1 12
4: 4 1 11
5: 5 1 2
6: 6 1 12
7: 7 1 NA
8: 8 1 NA
9: 1 2 19
10: 2 2 40
Veya 'için (j in names (DT)); set (DT, hangi (DT [[j]] == 0), j, NA) '. Değerleri bulmak ve değiştirmek için data.table kullanma hakkında daha ayrıntılı bir tartışma için bkz. [Here] (http://stackoverflow.com/a/7249454/4241780). – JWilliman
deneyin
df [is.na (df)] < altında - -
Temelde, :=
operatörünü kullanmak İstediğin sanmıyorum 0
Bu geriye doğru - soru 0 ile NA değil, NA ile 0 nasıl değiştirilir. – Gregor
- 1. satırla NA değerlerini değiştirin
- 2. pandalar MovingOLS NA değerlerini desteklemiyor mu?
- 3. Uygulanabilir ve benzersiz NA değerlerini kullanma
- 4. NA
- 5. NA değerlerini pandalarda birden çok sütunda nasıl doldurabilirim?
- 6. Tüm lat değerlerini bu
- 7. Sayısız sütun değerini bir arada yapıştırırken NA değerlerini nasıl aktarabilirsiniz?
- 8. Neden .na() argümanını değiştiriyor?
- 9. dplyr/ggplot2: na değerlerini içeren yığılmış çubuklarla zaman grafiği
- 10. R: NA değerlerini dplyr ile saat başına değiştirme
- 11. fillna'nın karşısında Pandalar (0)
- 12. dplyr hatası - gruplandırılmış ntile, ilk grup tüm NA
- 13. 0 d3 serisi verileriyle boş değerlerini doldurun
- 14. JSON dosyasındaki "NA", NA mantıksalına dönüştürür
- 15. rlist: NA
- 16. Tüm dizi değerlerini aynı anda kontrol etme
- 17. Dolgu NA alt
- 18. Pandalar: Bir sütunun tüm değerlerini nasıl değiştirebilirim?
- 19. R data.table hata NA
- 20. Tekrarlayıcıdaki tüm onay kutularının değerlerini al
- 21. Python'daki bir sayacın tüm değerlerini topla
- 22. Bir veri çerçevesindeki tüm sütun değerlerini pyspark
- 23. MPAndroidChart tüm xaxis değerlerini nasıl görüntüler?
- 24. Boole değerlerini true veya false yerine alın 1 veya 0
- 25. Tarih saat değerlerini TSQL'e aktarırken geçersiz tarih formatı (0)
- 26. pheatmap: NA için Renk
- 27. dolgu sütunu NA
- 28. NA tanıma boolean işleci
- 29. iki veri tabloları, <code>NA+n=NA</code> toplamını hesaplanırken bir dizi
- 30. Farklı türlerde eksik değerleri (NA) belirtme
/NULL değerleriyle değiştirebilir, ancak NA bu amacı R lingo'da sunar. – Chase