Mam ramę danych (Data.frame (Test)) w R z następującymi informacjami.

Columns1 | Column2 | Column3
1 | 11 | 33
3 | 34 | 56 
4 | 24 | 23
5 | 74 | 64 
3 | 45 | 52
2 | 54 | 53
1 | 76 | 92

Próbuję utworzyć nową kolumnę, która jest wyposażona przez dane w kolumnach 2 i 3 na podstawie warunkowego wyciągu kolumny 1.

Nie mogę się dowiedzieć, jak pisać odpowiedni warunek.

if (test$column1 == 3 || test$column1 == 2 || test$column1 == 1) {
test$Newcolumn = test$column1
} else {
  test$NewColumn = test$column2
}

Ostateczny wynik powinien wyglądać następująco:

Columns1 | Column2 | Column3 | NewColumn 
1 | 11 | 33 | 11
3 | 34 | 56 | 33
4 | 24 | 23 | 23
5 | 74 | 64 | 64
3 | 45 | 52 | 45
2 | 54 | 53 | 54
1 | 76 | 92 | 76
3
Chad Coleman 15 luty 2017, 22:36

2 odpowiedzi

Najlepsza odpowiedź

Rozwiązanie "proste IFelese jak Ifelese (Test $ Column1% w% C (1,2,3), Test $ Column2, Test $ Column3)" przez - Joel.Wilson pracował.

0
Chad Coleman 15 luty 2017, 20:59

Z dplyr, zakładając {x1}} jest twoim dataframe:

mydf %>% mutate(newColumn = ifelse(column1 %in% 1:3, column2, column3)) -> res

Zakładałem, że w twoim pytaniu jest literówka i zamierzała przypisać wartość column2 do newColumn w przypadku spełnienia stanu.

2
GGamba 15 luty 2017, 19:48