R - 因子转换为具有level()的字符

时间:2016-07-20 18:27:01

标签: r function dataframe

我有一个包含wilderness的四个指标变量的大型数据集。我希望将它们折叠成单个因子变量,将变量名称作为级别。当我在下面的函数之外执行此操作时,它工作正常。当在函数内部时,wilderness将转换为类“character”。

这是正常的,wildernessdata.frame(fct)中level = variable name的一个因素:

to_factor = function(var, df){
    for (i in 1:ncol(df)){
    var[df[, i] == 1] = i
    }
    factor(var)
}

fct = fct.og[, 1:10]
fct$wilderness = to_factor(fct$wilderness, fct.og[, 11:14])
levels(fct$wilderness) = colnames(fct.og[, 11:14])

这会将wilderness转换为data.frame(fct)中的class =字符:

to_factor = function(var, df){
    for (i in 1:ncol(df)){
    var[df[, i] == 1] = i
    }
    factor(var)
    levels(var) = colnames(df)
}

fct = fct.og[, 1:10]
fct$wilderness = to_factor(fct$wilderness, fct.og[, 11:14])

正在寻找一个易于重现的示例,但未找到要使用的基础数据集。数据集是here,虽然它非常大(道歉)。如果想到基础数据集,请告诉我,我很乐意更新以使其更具可重复性。任何想法都非常感激。感谢。

0 个答案:

没有答案