如何更改数据框中的特定值

时间:2018-04-12 03:06:16

标签: r

test2 <- data.frame(id = c(1, 2), score = c(0, 100))

在上面的数据框中,我想将1改为John,将2改为3.我怎么办?

2 个答案:

答案 0 :(得分:1)

由于ID是一个序列,我们希望以相同的顺序更改值,因此请使用&#39; id&#39;作为替换值的vector的索引

test2$id <- c("John", 3)[test2$id]

或者,由于序列顺序为1:n,只需将其替换为vector个新值,方法是将其分配给&#39; id&#39;柱

test2$id <- c("John", 3)

答案 1 :(得分:1)

如果这是特定问题,那么当@akrun回答时,您可以使用test2$id <- c("John", 3),因为向量是顺序的,$运算符引用数据帧的那一行。 / p>

如果你想要更通用的东西,在寻找匹配时,你只能指向匹配并只更新它们。

test2$id[test2$id == 1] <- "John"

test2$id[test2$id == 2] <- 3

更新1的所有匹配项以及2的所有匹配项。如果您只想按顺序更新项目,请使用单行方法。如果您想根据其值更新项目,请使用匹配方法。

如果您总是希望根据整数进行匹配,@ akrun的第一个解决方案也是一个很好的解决方案。