3

次のようなフレームデータ「testData」があります。

id     content
 1     I came from China
 2     I came from America
 3     I came from Canada
 4     I came from Japan
 5     I came from Mars

また、次のように別のフレームデータ「addr」もあります。

id   addr
 1   America
 2   Canada
 3   China
 4   Japan

次に、次のようにgreplsapplyまたは R の他の便利な関数を使用してデータを生成するにはどうすればよいですか。

id   content               addr
 1   I came from China     China
 2   I came from America   America
 3   I came from Canada    Canada
 4   I came from Japan     Japan
 5   I came from Mars      Mars
4

3 に答える 3

0

列を複製して「I came from」を削除したいだけのようです

testData$addr <- gsub("I came from ", testData$content)
于 2015-01-30T06:47:15.060 に答える
0

これはトリックを行います:

vec = addr$addr

testData$addr = apply(testData, 1, function(u){
    bool = sapply(vec, function(x) grepl(x, u[['content']]))
    if(any(bool)) vec[bool] else NA
})
于 2015-01-30T06:54:11.693 に答える