我目前正在动态访问“两个”数据框的“ v”列,我想将其变成一个具有“一个”数据框水平的因子。当我在two [,variable]上使用factor()时,我目前得到NA。知道如何使它起作用吗?
one =data.frame(v=c("B","A"))
two = data.frame(v=c("A","B"))
variable = "v"
two[,variable] = factor(two[,variable] ,levels = one$v, ordered = TRUE)
v
1 <NA>
2 <NA>
答案 0 :(得分:2)
这里,“一个”也是data.frame,因此我们需要从“一个”中提取相应的列
two[, variable] <- factor(two[,variable] ,levels = one[, variable], ordered = TRUE)
two[, variable]
#[1] A B
#Levels: B < A
如果它是tibble
,则two[, variable]
仍然是具有一列的tibble
。要提取列作为向量(如factor
方法在vector
上工作),我们可以使用$
或[[
two[[variable]] <- factor(two[[variable]], levels = one[[variable]], ordered = TRUE)
在base R
注意:OP首先显示了一个示例,其中levels = one
。现在,它已更改为one$v
。如果在创建“两个” data.frame