[英]How to combine columns within one data.frame that contain NA's in order to remove NA's
[英]How to remove NA data in only one columns?
我有一個看起來像這樣的文件:
date A B
2014-01-01 2 3
2014-01-02 5 NA
2014-01-03 NA NA
2014-01-04 7 11
如果我使用newdata <- na.omit(data)
,其中data
是通過R加載的上表,那么我只得到兩個數據點。 我明白了,因為它會過濾NA的所有實例。 我想要做的是過濾每個A
和B
這樣我得到A
三個數據點, B
只得到兩個。 很明顯,我的主要數據集遠遠大於數據集,而且數字不同,但兩者都不重要。
我怎樣才能做到這一點?
在您希望查找的相關數據向量上使用is.na()
,並使用否定結果進行索引。 例如:
R> data[!is.na(data$A), ]
date A B
1 2014-01-01 2 3
2 2014-01-02 5 NA
4 2014-01-04 7 11
R> data[!is.na(data$B), ]
date A B
1 2014-01-01 2 3
4 2014-01-04 7 11
is.na()
為NA
每個元素返回TRUE
,否則返回FALSE
。 要索引數據框的行,我們可以使用這個邏輯向量,但我們想要它的相反。 因此我們使用!
暗示相反( TRUE
變為FALSE
,反之亦然)。
您可以限制通過添加索引后列返回其列,
在[ , ]
,如
R> data[!is.na(data$A), 1:2]
date A
1 2014-01-01 2
2 2014-01-02 5
4 2014-01-04 7
數據框中的每一列必須具有相同數量的元素,這就是NA
首先派上用場的原因......
你能做的是
df.a <- df[!is.na(df$A), -3]
df.b <- df[!is.na(df$B), -2]
在Python的情況下,我們可以使用子集來定義列/列,並且就地確定是在DF中進行更改: - rounds2.dropna(subset = ['company_permalink'],inplace = True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.