test2 <- data.frame(id = c(1, 2), score = c(0, 100))
在上面的数据框中,我想将1改为John,将2改为3.我怎么办?
答案 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的第一个解决方案也是一个很好的解决方案。