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

Ram*_*ona 5 r dataframe

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

c1  c2  c3
x   2   z
y   5   f
c   3   r
a   11  z
Run Code Online (Sandbox Code Playgroud)

现在,我想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"
Run Code Online (Sandbox Code Playgroud)

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

小智 5

您可以嵌套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')
Run Code Online (Sandbox Code Playgroud)


Len*_*nyy 5

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
Run Code Online (Sandbox Code Playgroud)