我正在尝试编写一个更改数据框中特定值的函数。我有一个具有多个数值的数据框,我想将它们更改为字符串。例如,在数据框的“type”列中,我想将1更改为字符串'foil',将2更改为字符串'repeat',等等。我能够在a上创建一些代码单一类型,效果很好:
mydata[which(mydata[,'type'] == 1),'type'] <- 'foil'
由于这个工作本身,我试图创建以下功能:
recode <- function(column, value1, value2) {
mydata[which(mydata[,column] == value1), column] <- value2
}
为了测试它,我运行以下代码:
recode('type',1,'foil')
运行时我没有遇到任何错误,但它没有改变任何东西。当我手动定义变量并运行函数代码时,我可以使它正常工作:
column <- 'type'
value1 <- 1
value2 <- 'foil'
mydata[which(mydata[,column] == value1), column] <- value2
我不确定为什么同一行代码在函数外部工作,但在函数内部不起作用。任何帮助将不胜感激!