2013-12-11 46 views
1

當選擇取決於條件時,我在從R中的數據框中刪除列時遇到了很多困難。例如,根據性別是男性還是女性,我想刪除男性或女性專欄。 Person代表一個數據框。以下是我的代碼:基於條件從數據框中刪除列

Gender <- "male" 
dd <- subset(person, select = c(-Male)) 
de <- subset(person, select = c(-Female)) 
person1 <- ifelse(Gender=="male", dd, de) 

此代碼導致列出數據框中的第一列。數據框的頭部在下面。順便說一下變量dd和de工作正常。只有if else語句可能是因爲我的條件在數據框之外。當我在數據幀向量中引入性別時,我得到一個NULL結果。

同樣,如果使用下面的代碼刪除之列,它的工作原理,但我卡住了,如果其他部件

Myvars <- names(person) %in% c("Female") 
DL <- person [! Myvars] 

的數據幀

RoundDownAge Male Female 
54 938202 969252 
54 938202 969252 
54 938202 969252 
54 938202 969252 
54 938202 969252 
54 938202 969252 

謝謝

+3

什麼是預期的數據幀? – Ananta

+0

同意@Ananta提出這些問題的最佳方式是告訴我們你有什麼,並告訴我們你的期望。 –

+0

預期的數據框將包含兩列RoundDownAge和Male。但是,如果性別是女性(請參閱第一行代碼),則兩列將爲RoundDownAge和Female。謝謝 – user3063214

回答

1

這些代碼在你那正常嗎?

person1 <- subset(person,select=c(ifelse(Gender=='male',-Male,-Female))) 
+0

它完美的作品。謝謝大家 – user3063214

+0

@ user3063214:如果你得到解決你的問題的答案,點擊大的複選框接受它作爲答案。 –

+0

@ user3063214:謝謝! –