0

strsplit関数を使用して、データファイルから数値と文字列の両方の値を含む混合変数を抽出しました。以下に示すように、変数になりました。

> sample3

[[1]]
[1] "1200" "A"  

[[2]]
[1] "1193" "A"  

[[3]]
[1] "1117" "B"  

[[4]]
[1] "5663" 

[[5]]
[1] "7003" "C" 

[[6]]
[1] "1205" "A"  

[[7]]
[1] "2100" "D"  

[[8]]
[1] "1000" "D"  

[[9]]
[1]  "D" 

[[10]]
[1] "1000" "B"

これを2つの変数/ベクトルに分割する(または2列の行列に変換する)必要があります。unlist(sample3)コードを使用して、すべての値をncol = 2の行列に入れようとしましたが、欠落しているデータポイントがいくつかあるため、この方法を使用すると結果が正しくありません。2列のマトリックスに入れる前に、欠測データの問題を解決する必要があると思います。誰かがこの問題について何か考えを持っていますか?どんな助けでも大歓迎です。

4

1 に答える 1

1

このようなものが機能します

# dummy data
x <- list(c('100','a'), '100', c('a'), c('1000','b'))

numeric_x <- unlist(lapply(x,function(x) {.x <- head(x,1); as.numeric(.x)}))

character_x <- unlist(lapply(x,function(x) {.x <- tail(x,1); if(is.na(as.numeric(.x))) {return(.x)} else {return(NA)}}))

はるかに良い正規表現の答えがあると確信しています

于 2012-11-14T05:32:31.660 に答える