私は複数の行の各列に同じ文字列を持つ2つの列を持つ長いリストを持っていました。そこで、paste
を使用して-
を連結し、次にsetDT
を使用して、その頻度で一意のコンカットセットを返しました。R cSplitは文字列の最初の区切り文字を使用します
今、連結を取り消したいと思います。
私が試した:
library(splitstackshape)
d5 <- cSplit(d4, 'conc', '-', 'wide')
は、しかし、私の2番目の列に、私は時々、文字列内の複数の-
さんが持っていました。
これを回避するには、最初の-
区切り文字をcSplitにのみ使用します。
例:上記cSplit
を使用して
conc freq
A-hello 4
A-Hi-there 5
B-HELLO 1
を返します:
freq conc_001 conc_002 conc_003
4 A hello NA
5 A Hi there
1 B HELLO NA
を私は希望:
freq conc_001 conc_002
4 A hello
5 A Hi-there
1 B HELLO
"tidyr"パッケージから 'separate'を使いたいかもしれません。私は 'cSplit'を設計していないので、この種のケースを扱うのが便利です。 "tidyr"の場合、アプローチは 'separate(mydf、conc、into = c(" conc_001 "、" conc_002 ")、extra =" merge ")のようなものです。 – A5C1D2H2I1M1N2O1R2T1
私は、あなたが愚かな何かをすることもできます: 'cSplit(setDT(mydf)[、conc:= sub(" - "、"%^%& "、conc)]、" conc "、"%^%& " ) ':-) – A5C1D2H2I1M1N2O1R2T1