编写一个函数,该函数使用 for 循环替换基于字符向量的数据集中一列的报告值
Writing a function that uses for loop to replace the reporting values of one column in a dataset based on a character vector
我在这里尝试的是构建一个函数,每次我想用它们的实际答案选项替换数据集中的报告值时,我都可以运行。
假设,我使用以下答案选项来描述汽车的颜色:
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)
它打印希望的列并替换了值,但实际上并没有替换数据中的值。任何帮助将不胜感激,因为我对功能不是很有经验。
我们可以只使用索引来创建列。在 R
中,索引从 1 开始,因此将 1 添加到 'Colour' 列并使用它来替换值
data$Colour <- answer_options[data$Colour +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)
它打印希望的列并替换了值,但实际上并没有替换数据中的值。任何帮助将不胜感激,因为我对功能不是很有经验。
我们可以只使用索引来创建列。在 R
中,索引从 1 开始,因此将 1 添加到 'Colour' 列并使用它来替换值
data$Colour <- answer_options[data$Colour +1]