在 R 函数中使用 fct_recode
Using fct_recode inside a function in R
我正在尝试在函数中使用 fct_recode,但出现错误
"Error: f
must be a factor (or character vector)."
编辑:如果我 运行 这个那么它直接工作不知道如何将它合并到函数中
df[,"c1"] <- as.character(df$c1)
df[,"c1"] <- fct_recode(df$c1,
"Female" = "2",
"Male" = "1")
当我将 df[c1] 更改为 df$c1 时它起作用了,不知道为什么也不知道如何将它构建到我的重新编码函数中
我正在尝试的代码
recode <- function(data, var1)
{
data[,var1]
data[,var1] <- as.character(data[,var1])
data[,var1] <- fct_recode(data[,var1],
"Yes" = "1",
"No" = "2")
data[,var1] <- fct_explicit_na(data[,var1],"No")
return(data)
}
recode(df,"c1")
使用以下命令找到的 df 数据集的 c1 列的结构(它是一个大数据集,因此共享一列的输入,如果有问题请告诉我)
df[,"c1"] %>% head(10) %>% dput()
structure(list(c1 = c(2, 1, 2, 1, 1, 2, 2, 1, 1, 2)), notes = c("b15 urinary creatinine is in mg/dl",
"3", "the province variable is related to province", "the stratum variable is about urban and rural classification"
), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))
str(df$c1) #gives below output
num [1:5610] 2 1 2 1 1 2 2 1 1 2 ...
- attr(*, "label")= chr "C1"
- attr(*, "format.stata")= chr "%10.0g"
函数必须失败的任何原因
当我使用 [[ 表示法引用该列时它有效,我不确定为什么当我使用 df[var1] 表示法时它会失败,但工作代码如下
recode <- function(data, var1)
{
data[[var1]] <- as.character(data[[var1]])
data[[var1]] <- fct_recode(data[[var1]],
"Female" = "2",
"Male" = "1"
)
data[[var1]] <- fct_explicit_na(data[[var1]],"No")
return(data[[var1]])
}
recode(df,"c1")
我正在尝试在函数中使用 fct_recode,但出现错误
"Error: f
must be a factor (or character vector)."
编辑:如果我 运行 这个那么它直接工作不知道如何将它合并到函数中
df[,"c1"] <- as.character(df$c1)
df[,"c1"] <- fct_recode(df$c1,
"Female" = "2",
"Male" = "1")
当我将 df[c1] 更改为 df$c1 时它起作用了,不知道为什么也不知道如何将它构建到我的重新编码函数中
我正在尝试的代码
recode <- function(data, var1)
{
data[,var1]
data[,var1] <- as.character(data[,var1])
data[,var1] <- fct_recode(data[,var1],
"Yes" = "1",
"No" = "2")
data[,var1] <- fct_explicit_na(data[,var1],"No")
return(data)
}
recode(df,"c1")
使用以下命令找到的 df 数据集的 c1 列的结构(它是一个大数据集,因此共享一列的输入,如果有问题请告诉我)
df[,"c1"] %>% head(10) %>% dput()
structure(list(c1 = c(2, 1, 2, 1, 1, 2, 2, 1, 1, 2)), notes = c("b15 urinary creatinine is in mg/dl",
"3", "the province variable is related to province", "the stratum variable is about urban and rural classification"
), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))
str(df$c1) #gives below output
num [1:5610] 2 1 2 1 1 2 2 1 1 2 ...
- attr(*, "label")= chr "C1"
- attr(*, "format.stata")= chr "%10.0g"
函数必须失败的任何原因
当我使用 [[ 表示法引用该列时它有效,我不确定为什么当我使用 df[var1] 表示法时它会失败,但工作代码如下
recode <- function(data, var1)
{
data[[var1]] <- as.character(data[[var1]])
data[[var1]] <- fct_recode(data[[var1]],
"Female" = "2",
"Male" = "1"
)
data[[var1]] <- fct_explicit_na(data[[var1]],"No")
return(data[[var1]])
}
recode(df,"c1")