[英]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.