2016-06-06 2 views
-2

Использование набора диафрагмы. Скажем, я хочу, чтобы создать новый столбец под названием «красивый цветок» со следующими условиями:Создать новый столбец на основе boolean

[(Sepal.Length > 5.0) && (Petal.Length < 1.5)] 

Как мне это сделать?

+0

'ирис $ nice_flower <- (ирис $ Petal.Length <1,5) и (ирис $ Sepal.Length> 5)' – user3293236

ответ

0

Одним из способов является использование ifelse

iris$nice_flower <- ifelse(iris$Sepal.Length > 5.0 & iris$Petal.Length < 1.5, 1, 0) 

Другое варианты Пользуется as.integer (я думаю akrun уже говорил об этом), что лучше, чем при использовании ifelse

as.integer(iris$Sepal.Length > 5.0 & iris$Petal.Length < 1.5) 
1

В base R:

iris$nice_flower<-(iris$Petal.Length<1.5) & (iris$Sepal.Length>5) 
iris[iris$nice_flower==T,] #for verification 
-1
> iris$nice_flower <- iris$Sepal.Length > 5.0 & iris$Petal.Length < 1.5 
    > result <- iris[iris$nice_flower == T,] 
    > result 
    # Sepal.Length Sepal.Width Petal.Length Petal.Width Species nice_flower 
    # 1   5.1   3.5   1.4   0.2 setosa  TRUE 
    # 15   5.8   4.0   1.2   0.2 setosa  TRUE 
    # 17   5.4   3.9   1.3   0.4 setosa  TRUE 
    # 18   5.1   3.5   1.4   0.3 setosa  TRUE 
    # 29   5.2   3.4   1.4   0.2 setosa  TRUE 
    # 34   5.5   4.2   1.4   0.2 setosa  TRUE 
    # 37   5.5   3.5   1.3   0.2 setosa  TRUE 
+3

Не это уже отправил by @ user3293236 – akrun

+1

Действительно, это только мой ответ немного переформатирован и отправлен более чем на 45 минут позже ... :( – user3293236

0

использования в функции, чтобы создать новый столбец

iris <- within(iris , nice_flower <-ifelse(iris$Sepal.Length > 5.0 & iris$Petal.Length < 1.5, T, F)) 
iris <- subset(iris, nice_flower %in% T)