2016-10-03 9 views
0

データフレームには、1つの列に2つの値があるセルがあります。私はその列の値がそのセルの2つの値の1つを含んでいることを除いて、それらのセルの2つの内容を同じ行に分割する必要があります。データフレームの行を2つのコピーに分割します。

X.reagent_short_name  X.reagent   VIS 
    buffer     Excipient 732323 // 2343434 

になるだろう:例えば

X.reagent_short_name  X.reagent    VIS 
    buffer     Excipient   732323 
    buffer     Excipient   2343434 

は、データフレームの残りの部分を、これを行うし、維持する方法はありますか?

答えて

2

tidyrパッケージを使用すると、separate_rows()を使用することができます。

library(tidyr) 
df %>% separate_rows(VIS) 

# X.reagent_short_name X.reagent  VIS 
#1    buffer Excipient 732323 
#2    buffer Excipient 2343434 
0

ベースRと難しい方法:

as.data.frame(
rbind(t(apply(df, 1, function(x) c(x[1:2], unlist(strsplit(x['VIS'], split='//'))[1]))), 
rbind(t(apply(df, 1, function(x) c(x[1:2], unlist(strsplit(x['VIS'], split='//'))[2])))))) 

X.reagent_short_name X.reagent VIS1 
1    buffer Excipient 732323 
2    buffer Excipient 2343434 
関連する問題