2016-04-23 7 views
0

Я получил этот ДФКак извлечь часть символьных данных в новый столбец

AGE_TXT 
3 weeks 
1 year 
3 years 

я использую

strsplit(df$AGE_TXT, " ") 

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

Я tryied использовать grep("year", df$AGE_TXT), но только дайте мне True/False

я wolud хотел сделать новый столбец с данными

0 
1 
3 

0 в течение 3 недель, и 1 на 1 год, 3 на 3 года

+0

так что вы хотите три столбцы? – Sotos

+0

Я хочу, чтобы новый столбец представлял только число лет (1 месяц = ​​0, 1 год = 1), чтобы сравнить данные о возрасте. – Garf

ответ

1

Вы можете использовать ifelse

df$new <- ifelse(grepl('year', df$AGE_TXT), gsub('\\D', '', df$AGE_TXT), 0) 
df 
# AGE_TXT new 
#1 3 weeks 0 
#2 1 year 1 
#3 3 years 3 
+0

Я переработал свою проблему на основе вашего комментария – Garf

+0

@Garf отредактировал ... – Sotos

+1

Спасибо. Это сработало! – Garf