获取级别的整数值并添加到新列

时间:2014-07-28 20:28:04

标签: r dataframe levels factors

我在数据框中有一个因素列表,例如:

df <- data.frame("A" = c(1, 2, 3, 4), "B" = c("a", "c", "d", "b"))

我在列#B; B&#34;中重新排序了因子水平。使用:

levels(df$B) <- factor(df$B, levels = c("a", "b", "c", "d"))

我想访问一个因素的级别。例如,我想获得&#34; b&#34;的水平的整数值。 (这将是2)。

其他问题:

我还想在我的数据框中添加一个新列,它将给出该级别的整数值。 在上面的例子中,这将给出:

df <- data.frame("A" = c(1, 2, 3, 4), "B" = c("a", "c", "d", "b"), "Levels" =c(1,3,4,2))

2 个答案:

答案 0 :(得分:4)

方法1:

which(levels(df$B)=="b")

方法2:

grep("b",levels(df$B))

回答其他问题:

df <- cbind(df, "Levels" = as.numeric(df$B))

答案 1 :(得分:2)

level_to_check <- 'b'; which(levels(df$B) == level_to_check) # 2