3

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

基本的な算術演算に使用できる一意の主キーを設定しようとしています

ありがとう

4

3 に答える 3

6

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))
于 2013-04-17T06:52:37.877 に答える
5

digest@lokheartが指摘したように素晴らしいです。

別のオプションは、単純にfactors を使用することです。 factors も数字です。を介して強制的に数値を取得します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

重複行を追加すると、同じレベルになることに注意してください (連結時)。

于 2013-04-17T07:06:51.873 に答える