0

私はこのようなデータフレームを持っています:

x

TicketID   Application     Impacted_Systems
1          Web             Online; PeopleSoft, Financials
etc

私がやりたいのは、x $ Impacted_Systemsに基づいて別のdata.frameを作成し、各アイテムを「;」で区切って配置することです。独自の列に変換し、データフレームxと組み合わせてグラフ化します。

私はこれまでにこれを持っています:

data.frame(do.call('rbind', strsplit(as.character(x$Impacted_Systems),';'))) 

これにより、「;」で区切られた各文字列の列が作成されます。2回:

X1      X2       X3       X4       X5   X6      X7
1   Online  PeopleSoft Financials   Online  PeopleSoft Financials           Online

私が間違っていることについて何か考えはありますか?この特定のケースでは、7列ではなく3列のみである必要があります。

私はこれを試しました

p<-colsplit(x$Impacted_Systems, ";") 

これは名前オプションを期待しています。問題は、影響を受けるシステムの数が変化することであり、修正されていません。

4

1 に答える 1

1
# some example data
df <- data.frame(Impacted_Systems = c("foo;bar", "foo;bar1;bar2", "foo;bar1;bar2;bar4;bar4"))

library(plyr)
library(reshape2)
split_names <- llply(as.list(df$Impacted_Systems), function(x){
                split_data <- data.frame(rbind(strsplit(x, ";")[[1]]))
                names(split_data) <- paste0("Impacted_Systems", 1:length(strsplit(x, ";")[[1]]))
                split_data
    })


> cbind(df, ldply(split_names))
         Impacted_Systems Impacted_Systems1 Impacted_Systems2
1                 foo;bar               foo               bar
2           foo;bar1;bar2               foo              bar1
3 foo;bar1;bar2;bar4;bar4               foo              bar1
  Impacted_Systems3 Impacted_Systems4 Impacted_Systems5
1              <NA>              <NA>              <NA>
2              bar2              <NA>              <NA>
3              bar2              bar4              bar4
于 2012-10-03T21:02:33.623 に答える