根据条件从数据框中删除列

时间:2013-12-11 19:30:21

标签: r

当选择依赖于条件时,我在从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语句可能是一个问题,因为我的条件是在数据帧之外。当我将Gender带入数据框架向量时,我得到一个NULL结果。

类似地,如果使用以下代码删除列,它可以工作,但我被卡在if else组件上

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

谢谢

1 个答案:

答案 0 :(得分:2)

此代码是否适合您?

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