2016-08-15 4 views
-1

У меня есть столбец, который указывает тип санкций, применяемых в моих данных. Вот как это выглядит:Создание новых столбцов

      country sanction_type 
         (chr)   (int) 
1       China   2 
2       Austria   5 
3     South Africa   1 
4       Poland   6 
5       Poland   7 
6 Bolivia, Plurinational State of   2 

Виды санкций варьируются от 1 до 10. Как я могу создать два дополнительных столбца, один из которых включает типы санкций 1,2,3,4, а другой - 5,6,7,8,9,10. Я также хотел бы сохранить существующую версию со всеми типами санкций. Большое спасибо!

В наборе данных имеется более 6 наблюдений, это всего лишь образец данных. Извините за путаницу.

+1

ли вы хотите дополнительные колонки были фиктивными? – udden2903

+1

Да, я бы хотел, чтобы они были пустышками –

ответ

1

Использование dplyr пакета:

country <- c("China","Austria","South Africa","Poland", "Poland", "Bolivia") 
sanction_type <- c(2,5,1,6,7,2) 
df <- data.frame(country, sanction_type) 

library(dplyr) 

df <- mutate(df, srange1 = ifelse(sanction_type <= 4, 1, 0), 
      srange2 = ifelse(sanction_type >= 5, 1, 0)) 
+2

На самом деле нет необходимости загружать пакет, чтобы добавить столбец. Множество способов сделать это в базе R. Если вам нравится 'mutate', базовое R' transform' функционально одинаково. –

+0

Я просто понял, что не уточнил, что у меня больше наблюдений в реальных данных, 1097, чтобы быть преданным. Поэтому я ищу способ разделить типы санкций на две отдельные колонки (1,2,3,4 & 5,6,7,8,9,10) –

+0

@ jo.magi Вот что делает код. Просто замените df на имя вашего фрейма данных. Часть перед библиотекой (dplyr) предназначена только для иллюстрации. – udden2903

4

Пусть ваш кадр данных будет dat,

dat$less4 <- as.integer(dat$sanction_type <= 4L) 
dat$great5 <- 1L - dat$less4 

Я видел, что ваш sanction_type столбец имеет целочисленный тип, поэтому я делаю Integer операции все время, чтобы получить целочисленный результат.

Смежные вопросы