2016-07-07 2 views
-1

У меня есть кадр данных как этотКак объединить данные в один столбец из скобки

a<-c("ABC","CDE(b123)","EFG") 
b<-c("a123","","c123") 
df<-data.frame(A=a,B=b) 
df 
      A B 
1  ABC a123 
2 CDE(b123)  
3  EFG c123 

Я ожидаю, чтобы иметь новый столбец как этот

C 
a123 
b123 
c123 

объединить данные из столбца А внутри скобки с колонкой B Спасибо!

ответ

2

Возможное решение с использованием регулярных выражений:

df$B <- as.character(df$B) 
df$A <- as.character(df$A) 
df$C <- df$B 

df$C[df$B==""] <- sub(".*\\((.*)\\)", "\\1", df$A[df$B==""]) 

      A B C 
1  ABC a123 a123 
2 CDE(b123)  b123 
3  EFG c123 c123