我在数据框中有一组列,我想用以下方式重新编码(这里是一个带有一个变量的示例):
completed_survey$little_control<-car:: recode(completed_survey$little_control,
"1=7;2=6;3=4;4=4;5=3;6=2;7=1")
为了高效并且不对所有不同的变量重复相同的代码,我正在考虑使用一个函数,并且正在考虑类似以下内容:
recoding <- function(x) {
car :: recode(completed_survey$., "1=7;2=6;3=4;4=4;5=3;6=2;7=1")
}
但是,一旦将其应用于数据框中的变量,则会导致以下错误:
Error in `$<-.data.frame`(`*tmp*`, little_control, value = numeric(0)) : replacement has 0 rows, data has 139334
我想这是功能说明中的一个问题。如何在数据框中引用任何通用列变量,以便可以应用重新编码功能?
答案 0 :(得分:0)
有几个问题(可能是拼写错误)-1)不必要的空间,2)函数内部未使用函数参数。下面的函数有两个参数-一个用于数据,另一个用于列名作为字符串
recoding <- function(data, colName) {
car::recode(data[[colName]], "1=7;2=6;3=4;4=4;5=3;6=2;7=1")
}
recoding(completed_survey, "little_control")
并举例说明
recoding(mtcars, "carb")
#[1] 4 4 7 7 6 7 4 6 6 4 4 4 4 4 4 4 4 7 6 7 7 6 6 4 6 7 6 6 4 2 8 6