Rで文字列を整数に変換する簡単なアルゴリズム/関数はありますか
次のようなデータフレームがあります
id_1 id_2 id_3 date value
1 2 3 2012-11-18 50
1 1 4 2012-05-07 100
と
strtoi(paste(df[,1],df[,3],df[,4],sep='_')
私に与えるNA
基本的な算術演算に使用できる一意の主キーを設定しようとしています
ありがとう
Rで文字列を整数に変換する簡単なアルゴリズム/関数はありますか
次のようなデータフレームがあります
id_1 id_2 id_3 date value
1 2 3 2012-11-18 50
1 1 4 2012-05-07 100
と
strtoi(paste(df[,1],df[,3],df[,4],sep='_')
私に与えるNA
基本的な算術演算に使用できる一意の主キーを設定しようとしています
ありがとう
digest
パッケージを使用
library(digest)
temp <- data.frame(x1=c(1:5,1),x2=c(2:6,2),stringsAsFactors=FALSE)
temp <- data.frame(temp, uid = apply(temp, 1, digest),stringsAsFactors=FALSE))
digest
@lokheartが指摘したように素晴らしいです。
別のオプションは、単純にfactor
s を使用することです。 factor
s も数字です。を介して強制的に数値を取得しますas.numeric
。
kvpairs <- factor(apply(X, 1, paste, collapse=""))
これで、レベル (連結された行ストリング) と基礎となる数値の間にペアリングができました。
# the numeric key of the first value
> as.numeric(kvpairs)[[1]]
[1] 2
# the value of key==2
> levels(kvpairs)[2]
[1] "1232012-11-18 50"
> kvpairs
[1] 1232012-11-18 50 1142012-05-07100
Levels: 1142012-05-07100 1232012-11-18 50
重複行を追加すると、同じレベルになることに注意してください (連結時)。