如果该值符合R中的条件,则更改列表中的值

时间:2013-09-14 04:19:57

标签: r

我有一组我从csv

导入的数据
info <- read.csv("test.csv")

这是一个看起来像什么的例子

  name   type   purchase
1 mark   new    yes
2 steve  old    no
3 jim    old    yes
4 bill   new    yes

我想做什么:

我想遍历purchase列并将所有yes更改为True&amp; no是假的。然后循环浏览type列,将所有old更改为customer

我试图弄乱所有不同的应用程序并且无法使其工作。我也试过这个帖子Replace a value in a data frame based on a conditional (`if`) statement in R中的一堆方法,但仍然没有运气。

非常感谢任何帮助或指导!

谢谢, 尼科

1 个答案:

答案 0 :(得分:5)

这是一种使用within,基本字符替换和字符等价的基本测试的方法。

within(mydf, {
  type <- gsub("old", "customer", type)
  purchase <- purchase == "yes"
})
#    name     type purchase
# 1  mark      new     TRUE
# 2 steve customer    FALSE
# 3   jim customer     TRUE
# 4  bill      new     TRUE

我已使用gsub替换“type”,但还有其他方法可以采用(例如factorifelse等等。