将具有取决于另一列的值的列添加到数据框

时间:2018-06-22 12:56:26

标签: r dataframe

我有一个数据框,要向其附加一列,其值取决于数据框中的一列。 我的数据框看起来像这样:

c1  c2  c3
x   2   z
y   5   f
c   3   r
a   11  z

现在,我想基于c4的值附加另一列c2。 对于0到4之间的所有值,我要附加"low",对于5到9之间的值,我要附加"medium",对于大于10 "high"的值。

c1  c2  c3  c4
x   2   z   "low"
y   5   f   "medium"
c   3   r   "low"
a   11  z   "high"

答案可能很简单,但我真的想不到。

2 个答案:

答案 0 :(得分:3)

df <- read.table(text = "
c1  c2  c3
x   2   z
y   5   f
c   3   r
a   11  z
         ", h = T)

df$c4 <- cut(df$c2, c(-Inf,4,9,Inf), c("low", "medium", "high"))

> df

  c1 c2 c3     c4
1  x  2  z    low
2  y  5  f medium
3  c  3  r    low
4  a 11  z   high

答案 1 :(得分:2)

您可以嵌套ifelse个故事。从连续变量中创建分类变量时,这非常方便。

data$c4 <- ifelse(data$c2 >= 0 & data$c2 <= 4, 'low',
                  ifelse(data$c2 >=5 & data$c2 <=9, 'medium',
                         ifelse(data$c2 >=10, 'High', 'something else')