一个非常基本的问题。我有一个包含14个变量和576个观测值的数据框。
> head(Boston)
crim zn indus chas nox rm age dis rad tax ptratio black lstat medv
1 0.00632 18 2.31 0 0.538 6.575 65.2 4.0900 1 296 15.3 396.90 4.98 24.0
2 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 396.90 9.14 21.6
3 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 392.83 4.03 34.7
4 0.03237 0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.7 394.63 2.94 33.4
5 0.06905 0 2.18 0 0.458 7.147 54.2 6.0622 3 222 18.7 396.90 5.33 36.2
6 0.02985 0 2.18 0 0.458 6.430 58.7 6.0622 3 222 18.7 394.12 5.21 28.7
我想为每条记录创建一个新值CATMEDV
,其中填充的值为1
或0
。如果medv > 30.0, CATMEDV=1
,IF medv < 30, CATMEDV=0
如果我想添加多个条件,请说medv>30.0
和rm>7
,然后CATMEDV=1, else 0
。我怎么能这样做?
此外,每次我将数据框从我的R控制台粘贴到一个问题时,它都会混乱,一些主持人会重新格式化它。如何在问题窗口中粘贴数据框而不会混淆R?
中的格式答案 0 :(得分:1)
您可以使用函数ifelse
:
x <- data.frame(medv=rnorm(10, mean=30), rm=rnorm(10, mean=7))
x$CATMEDV <- ifelse(x$medv>30.0 & x$rm>7, 1, 0)
x
medv rm CATMEDV
1 30.59482 8.139964 1
2 29.64808 6.565482 0
3 30.99625 5.875143 0
4 31.46609 7.848523 1
5 29.65703 7.875010 0
6 29.47165 7.023216 0
7 28.26122 8.046844 0
8 31.62395 6.007356 0
9 32.10948 7.423388 1
10 29.53155 6.098616 0