我找到了使用循環的解決方案。這不是解決這個問題的最優雅的方式,但有幫助。
首先你的數據幀
Col1 <- c(NA,NA,NA,'tbd',NA)
Name <- c('ABC','XYZ','KKL','HGGF','fFFF')
Addreess <- c('ddfddf','HJJJ','PPOI','UYTT','OOOO')
df <- data.frame(Col1,Name,Addreess)
> df
Col1 Name Addreess
1 <NA> ABC ddfddf
2 <NA> XYZ HJJJ
3 <NA> KKL PPOI
4 tbd HGGF UYTT
5 <NA> fFFF OOOO
申請一個循環,以查找數據幀的COL1列有「TBD」的線,並建立一個新的,沒有「待定」,通過只選擇線在Col1中與 'NA'
df1 <- c()
for(i in 1:nrow(df)){
if(is.na(df$Col1[i])){
df1 <- rbind(df1,df[i,])
}
}
從而造成:
> df1
Col1 Name Addreess
1 <NA> ABC ddfddf
2 <NA> XYZ HJJJ
3 <NA> KKL PPOI
5 <NA> fFFF OOOO
編輯!
有執行這個更簡單和優雅的方式:
v <- which(df$Col1 %in% 'tbd')
df <- df[-v,]
我希望幫助你。
問候。
試試'subset(df1,is.na(Col1))'或'subset(df1,!Col1%in%'tbd')'''。如果只有NA元素和'tbd',那麼使用'is.na'來獲得那些具有NA的行,或者如果我們需要專門定位'tbd',那麼'%in%'或'!='ie'subset (df1,Col1!='tbd')' – akrun
我試過使用這兩個..我得到錯誤-FUN中的錯誤(左):一元運算符的無效參數 – Joe
請檢查'str(df1)'。它會給你想法。通常情況下,這應該工作,因爲我能夠得到基於示例顯示的輸出 – akrun