文字ベクトルx
は、ソースから目的地までのフライトに関するツイートを運賃で含んでいます。それは以下のようになります。データフレーム内の行からドル値を抽出し、それぞれの行に貼り付ける方法
x <- c('RT @airfarewatchdog: Los Angeles Los Angeles LAX to Cabo #SJD for $234',
'RT @TheFlightDeal: Airfare Deal: [AA] New York - Mexico City, Mexico. $270',
'SOME JUNK HERE',
'RT @airfarewatchdog: Los Angeles Los Angeles LAX to New York')
私は基本的にソースと各行からの運賃と目的地の都市を抽出しようとすると、別の変数にそれを格納しています。
私のコードは以下のようになります。
toMatch <- (data$City_Airport)
a <- sapply(1:length(x), function(i) {
res <- c(i, paste(ex_dollar(x)), unlist(stringr::str_extract_all(x[i], paste(toMatch, collapse = "|"))))
if (length(res) > 1) {res
} else NULL
})
a <- plyr::ldply(a, rbind)
a[] <- lapply(a, as.character)
a[is.na(a)] <- ""
names(a)[1] <- "row"
私の出力は以下のようになります。ここでは何が起こっている
row 2 3 4 5 6 7 8 9
1 1 $234 $270 NA NA Los Angeles Los Angeles LAX SJD
2 2 $234 $270 NA NA New York Mexico City
3 3 $234 $270 NA NA SOM JUN HER
4 4 $234 $270 NA NA Los Angeles Los Angeles LAX New York
は運賃がすべての行から抽出され、それらはすべてが上の貼り付けされていることです各行
ここで問題は、ループ内にある貼り付け(ex_dollar(x))関数であると仮定しています。私は他の場所にその機能を残そうとしましたが、うまく動作しませんでした。ここで
row 2 3 4 5 6
1 1 $234 Los Angeles Los Angeles LAX SJD
2 2 $270 New York Mexico City
3 3 NA SOM JUN HER
4 4 NA Los Angeles Los Angeles LAX New York
はい]を使用しています。ソリューションがシンプルだった昨日以来、これ以上私の頭を壊していた。私はRとプログラミング全体にはかなり新しいです。しかし、ありがとう@ dww :) –