重新编码数据框中的一组列
Recode a set of columns in a data frame
我在数据框中有一组列,我想按以下方式重新编码(这里是一个带有一个变量的示例):
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
估计是函数规范的问题。如何引用数据框中的任何通用列变量,以便应用重新编码功能?
有几个问题(可能是拼写错误)-1) 不必要的 space,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
我在数据框中有一组列,我想按以下方式重新编码(这里是一个带有一个变量的示例):
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
估计是函数规范的问题。如何引用数据框中的任何通用列变量,以便应用重新编码功能?
有几个问题(可能是拼写错误)-1) 不必要的 space,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