我有一个数据框,要向其附加一列,其值取决于数据框中的一列。我的数据框看起来像这样:
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)
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)
| 归档时间: |
|
| 查看次数: |
12454 次 |
| 最近记录: |