0

私はパッケージでカスタマイズしようとしていtidyrますが、いくつかの変数を連結した変数を持つという問題に苦しんでいます。以下の最小限の例では、変数v2をその構成変数v3に分割しv4、これらをスイングして、最終的に 4 つの変数v1-を作成しv4ます。

require(plyr)
require(dplyr)
require(stringr)
require(tidyr)    
data <- 
      data.frame(
        v1=c(1,2),
        v2=c("v3 cheese; v4 200", "v3 ham; v4 150")) %>%
      tbl_df()

v2新しいものに分割すると、次のtempようになりますv3

mutate(data, 
      temp=unlist(sapply(str_split(data$v2, pattern=";"), "[", 1)))

  v1                v2      temp
1  1 v3 cheese; v4 200 v3 cheese
2  2    v3 ham; v4 150    v3 ham

私の問題は次のとおりです。

  • 1)を使用して列名として分割およびスイングv3ANDアップするにはどうすればよいですか?v4tidyr
  • 2)私の実際のデータでは、変数名はわかりません(またはそれらは非常に多くあります)が、それらは「var value」という構造を持っています.1)のようにそれらを自動的に識別してスイングするために正規表現を使用したいと思います。

このSO の回答に触発されましたが、変数名の正規表現コードを使用しても機能しませんでした。

更新:私の出力は次のようになります( and でv2冗長になったため、スキップできます):v3v4

    v1  v2  v3  v4
1   1   v3 cheese; v4 200   cheese  200
2   2   v3 ham; v4 150  ham 150
4

1 に答える 1