1
おそらくこれはちょっとしたことですが、データフレーム内の文字列の複数の列を分割する洗練された方法を考えてみたいと思います。例えば、私は、多くの場合、このような単位は値と同じ細胞であるExcelからデータを受け取る:データフレーム内の複数の文字ベクトルを効率的に分割するR
df <- data.frame(A = paste(round(runif(5) * 10), "KG", sep = " "),
B = paste(round(runif(5) * 10), "KG", sep = " "),
C = paste(round(runif(5) * 10), "KG", sep = " "))
df
A B C
1 1 KG 9 KG 7 KG
2 8 KG 1 KG 10 KG
3 7 KG 8 KG 6 KG
4 5 KG 6 KG 9 KG
5 3 KG 2 KG 9 KG
ここから、ユニットを分離して格納する必要があります。通常、私は次のようなことをします:
df2 <- as.data.frame(apply(df, 2,
function(x) as.numeric(lapply(strsplit(as.character(x),
split = " ", fixed = TRUE), "[", 1))))
df3 <- as.data.frame(apply(df, 2,
function(x) as.character(lapply(strsplit(as.character(x),
split = " ", fixed = TRUE), "[", 2))))
df4 <- cbind(df2, df3)
df4
A B C A B C
1 1 9 7 KG KG KG
2 8 1 10 KG KG KG
3 7 8 6 KG KG KG
4 5 6 9 KG KG KG
5 3 2 9 KG KG KG
これは機能しますが、実装するのは面倒です。このタイプの問題に対して、より良い解決策がありますか?
これははるかに速く、より複雑ではありません。ありがとう! – hubbs5