簡體   English   中英

如何僅在一列中刪除NA數據?

[英]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的所有實例。 我想要做的是過濾每個AB這樣我得到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM