過去に解決策を見たことがありますが、どこを忘れましたか: x=1234 を数字 (1,2,3,4) に変換する R 関数はありますか?
Xi'an
質問する
194 次
2 に答える
6
a <- c("1234")
res <- strsplit(a,"")
res
#[[1]]
#[1] "1" "2" "3" "4"
a
が数値ベクトルの場合は、最初に文字列としてキャストする必要があることに注意してください。必要に応じて、後で結果を数値に再キャストできます。res
次のコマンドは、最初に返されたリスト形式のままである限り、これを行います。
lapply(res,as.numeric)
#[[1]]
#[1] 1 2 3 4
res
入力文字列ごとに 1 つの項目を含むリストが含まれ、各文字がベクトル内の独自の要素に割り当てられます。この場合、入力文字列は 1 つしかないため、出力にはリスト項目 (ベクトルを含む) が 1 つだけあります。
paste()
逆の操作は、次の関数で実行できます。
a<-c(5,2,8,0)
paste(a,collapse="")
あなたはでまとめることができpaste
ますas.numeric()
于 2013-04-29T18:35:48.687 に答える
2
ここに別の可能性があります:
x <- 1234
as.numeric(sapply(sequence(nchar(x)), function(y) substr(x, y, y)))
# [1] 1 2 3 4
nchar
「文字列」の長さが何文字かを示します。をラップすると、sequence
に必要な位置が生成されsubstr
ます。開始位置と終了位置に基づいて、抽出前にsubstr
入力を自動的に変換します。character
于 2013-04-29T20:09:21.140 に答える