【问题标题】:Replacing Data Frame Logicals [duplicate]替换数据帧逻辑[重复]
【发布时间】:2015-12-14 11:28:38
【问题描述】:

我有一个名为“Data”的数据框,如下所示:

              Jobs       Agency      Location       Date RXH  HS TMM Payed
6     RWC Heineken    Lightblue           EGC 2015-10-10  90 8.5 765 FALSE
31     Playstation    Lightblue    Mirdiff CC 2015-11-13  90 7.0 630 FALSE
26    I.D Heineken    Lightblue Irish Village 2015-11-06  90 8.0 720 FALSE
35 Bank of America       Allure       Raffles 2015-11-17 100 3.0 300 FALSE
15 Netapp Gitex F1 Events House          DWTC 2015-10-20 100 8.0 800  TRUE

我想将 Data$Payed 中 Data$Jobs == "RWC Heineken" 中的所有项目更改为 TRUE

我可以使用 fix(Data) 手动更改它,但我需要更改其中的几个。

我正在寻找可以自动执行此操作的代码。

【问题讨论】:

  • 不确定预期的输出,trimws(Data$Jobs)== "RWC Heineken"
  • Data$Payed[Data$Jobs == "RWC Heineken"] <- TRUE ?
  • @jogo 给了你完整的答案。我发现这篇文章很相似stackoverflow.com/questions/11817371/…

标签: r dataframe logical-operators


【解决方案1】:

您需要根据逻辑分配一个值。这是一个工作:

您要更改的行:

Data$Jobs == "RWC Heineken"
# Incidentally this tells you how many meet this criterion
sum(Data$Jobs == "RWC Heineken")

这将返回您要更改的列的元素:

Data$Payed[Data$Jobs == "RWC Heineken"]

下一步是更改此逻辑适用的值:

Data$Payed[Data$Jobs == "RWC Heineken"] = "TRUE"

你也可以:

Data[Data$Jobs == "RWC Heineken", "Payed"] = "TRUE"

【讨论】:

  • 谢谢迈克!!!正是我需要的,完美的解释。这也会改变我的 .csv 文件吗?
  • 请注意,约定是使用<- 进行分配。它可以(并且已经)辩论,但对于初学者应该知道<- 是惯用的 R。
  • 不,这只会影响您加载的内容。使用“write.csv”来输出,尽管考虑一下你是如何管理数据的,因为这本能地感觉很笨拙。
  • csv文件不会被改变,如果你想重写csv你可以使用write.csv
  • 我知道 antoine-sac,但我发现 = 更容易阅读,而且我还没有看到始终使用 的可靠论据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-27
  • 2021-11-16
相关资源
最近更新 更多