1

我在这里尝试的是构建一个函数,每次我想用它们的实际答案选项替换数据集中的报告值时都可以运行该函数。

假设,我使用以下用于描述汽车颜色的答案选项:

answer_options <- c("blue", "red", "yellow", "green")

然后是包含颜色列的数据集:

data <- data.frame(Animal=c("Parrot", "Pigeon", "Crocodile", "Impala", "Dolphin", "Dinosaur"), Colour=c(0,1,1,2,1,3), Year=c(2018, 2017, 2018, 2019, 2020, 2024))

我已经研究了这里的每个相关问题,但找不到让以下函数用相应的 answer_options 替换报告值的方法(请注意,我可以替换它们,但我的任务是构建一个函数而不是必须每次重复代码块):

answer.option.replacer <- function(dataset, column_index, replacer_vector, replacer_length){
for (i in 0:replacer_length){
dataset[[column_index]][dataset[[column_index]]==i] <-replacer_vector[i+1]}
return(dataset[[column_index]])
}

现在,如果我运行:

answer.option.replacer(data, 2, answer_options, 4)

它打印替换值的希望列,但实际上并没有在数据中替换它们。任何帮助将不胜感激,因为我对功能不是很有经验。

4

1 回答 1

1

我们可以只使用索引来创建列。在R中,索引从 1 开始,因此将 1 添加到“颜色”列并使用它来替换值

data$Colour <- answer_options[data$Colour +1]
于 2019-10-09T16:41:56.633 回答