簡體   English   中英

從數據框中刪除某些值

[英]Removing certain values from a data frame

我知道已經有一些這樣的線程,但是我找不到任何解決方案。

我有一個看起來像這樣的數據框:

    Name        Age     Sex     Survived
1   Allison     0.17    female  1
2   Leah        0.33    female  0
3   David       0.8     male    1
4   Daniel      0.83    male    1
5   Alex        0.83    male    1
6   Jay         0.92    male    1
7   Sara        16      female  1
8   Jade        15      female  1
9   Connor      17      male    1
10  Jon         18      male    1
11  Mary        8       female  1

我想刪除小於1的年齡。我希望數據看起來像這樣:

    Name        Age     Sex     Survived
1   Allison     NA      female  1
2   Leah        NA      female  0
3   David       NA      male    1
4   Daniel      NA      male    1
5   Alex        NA      male    1
6   Jay         NA      male    1
7   Sara        16      female  1
8   Jade        15      female  1
9   Connor      17      male    1
10  Jon         18      male    1
11  Mary        8       female  1

或者只刪除年齡小於1的行。

按照其他解決方案,我嘗試了此操作,但沒有成功mydata[mydata$Age<"1"&&mydata$Age>"0"] <- NA

這是刪除行的三種方法:

mydata[mydata$Age > 1, ]

subset(mydata, Age > 1)

filter(mydata, Age > 1)

這是使它們不適用的方法:

mydata$Age[mydata$Age < 1] <- NA

您的問題是您使用1作為字符(用引號引起來)。 字符少於/大於數字的工作方式與數字稍有不同,因此請小心。 另外,請確保您的“年齡”列為數字。 最好的方法是

mydata$Age <- as.numeric(as.character(mydata$Age))

這樣您就不會意外弄亂因子變量。

編輯放錯了標志。 現在固定

> mydata[mydata$Age<1, "Age"] <- NA
> mydata
      Name Age    Sex Survived
1  Allison  NA female        1
2     Leah  NA female        0
3    David  NA   male        1
4   Daniel  NA   male        1
5     Alex  NA   male        1
6      Jay  NA   male        1
7     Sara  16 female        1
8     Jade  15 female        1
9   Connor  17   male        1
10     Jon  18   male        1
11    Mary   8 female        1

更新資料

如果Age是因素,也許可以使用

mydata[as.numeric(as.character(mydata$Age))<1, "Age"] <- NA

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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