【问题标题】:Removing a column from a dataframe based on a conditional根据条件从数据框中删除列
【发布时间】:2013-12-11 19:30:20
【问题描述】:

I am having a lot of difficulty removing a column from a data frame in R when the the choice is dependent on a conditional.例如,我想根据性别是男性还是女性来删除男性或女性列。 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

谢谢

【问题讨论】:

  • 预期的数据框是什么?
  • 同意@Ananta 提出这些问题的最佳方式是向我们展示您所拥有的,并向我们展示您的期望。
  • 预期的数据框将有两列 RoundDownAge 和 Male。但是,如果性别是女性(参见第一行代码),则两列将是 RoundDownAge 和女性。谢谢

标签: r


【解决方案1】:

这段代码对你有用吗?

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

【讨论】:

  • @user3063214:如果您得到解决问题的答案,请单击大复选框接受它作为答案。
  • @user3063214:谢谢!
猜你喜欢
  • 2018-06-04
  • 1970-01-01
  • 2016-04-26
  • 2022-10-14
  • 2019-07-27
  • 1970-01-01
  • 2019-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多