如何在R中进行多个查找?
所以我有这样的kit.txt文件(都在一行上): 我有这样的stores.txt(都在一行中): 我的area.txt如下(每行一行): 我想做的是,对于kit.txt中的每一行,应该在stores.txt(大括号中的第一列)中查找kit.txt中的ID。如果ID存在,则应在area.txt中查找stores.txt中的标题(哈希符号前的文本)。如果标题存在于area.txt中,则应将其输出到如下文件中,并显示标题、存储ID和区域ID(每行一行): 如图所示,使用引号和逗号。所以只包括拍卖和日出,因为kit.txt和stores.txt中都只包含它们 我在R怎么做如何在R中进行多个查找?,r,R,所以我有这样的kit.txt文件(都在一行上): 我有这样的stores.txt(都在一行中): 我的area.txt如下(每行一行): 我想做的是,对于kit.txt中的每一行,应该在stores.txt(大括号中的第一列)中查找kit.txt中的ID。如果ID存在,则应在area.txt中查找stores.txt中的标题(哈希符号前的文本)。如果标题存在于area.txt中,则应将其输出到如下文件中,并显示标题、存储ID和区域ID(每行一行): 如图所示,使用引号和逗号。所以只包括拍卖和日出
谢谢。您需要对所有文件执行一些清理,以便它们的格式可用
library(dplyr)
library(tidyr)
#Read and clean 'kit.txt'
read.table('kit.txt', sep = ';') %>%
separate_rows(V1, sep = ',\\s+') %>%
separate(V1, c('V1', 'V2'), sep = '#') %>%
mutate(V2 = sub(',$', '', V2)) -> d1
d1
# A tibble: 4 x 2
# V1 V2
# <chr> <chr>
#1 bbc_a 22292
#2 bbc_b 22293
#3 desert8 5394
#4 city4 2525
#Read and clean 'stores.txt'
read.table('stores.txt', sep = '@') %>%
separate_rows(V1, sep = ',\\s\\[') %>%
separate(V1, c('V1', 'V2'), sep = '\\s=\\s') %>%
separate_rows(V2, sep = ',\\s') %>%
mutate(V2 = gsub('\\{|\\}', '', V2),
V1 = trimws(gsub('\\[|\\]', '', V1))) %>%
separate(V2, c('V2', 'V3'), sep = '#') %>%
mutate(V3 = sub(',$', '',V3)) -> d2
d2
# V1 V2 V3
# <chr> <chr> <chr>
#1 22292 bbc/images/auction.jpg 567482
#2 22292 bbc/images/station.jpg 517482
#3 5394 bbc/images/sunrise.jpg 567499
#4 432112 bbc/images/sunset.mp3 53209
#5 432112 bbc/images/alert.mp3 51109
#read area.txt
d3 <- read.table('area.txt', sep = ';')
d3
# V1 V2
#1 bbc/images/auction.jpg 52
#2 bbc/images/sunrise.jpg 38
#3 bbc/images/stars.jpg 46
#combine d1, d2 and d3
d1 %>%
inner_join(d2, by = c('V2' = 'V1')) %>%
inner_join(d3, by = c('V2.y' = 'V1')) -> result
result
# A tibble: 2 x 5
# V1 V2.x V2.y V3 V2.y.y
# <chr> <chr> <chr> <chr> <int>
#1 bbc_a 22292 bbc/images/auction.jpg 567482 52
#2 desert8 5394 bbc/images/sunrise.jpg 567499 38
#Write the file
cat(sprintf('"%s#%s#%s",', result$V2.y, result$V3, result$V2.y.y), file = 'result.lua', sep = '\n')
库(dplyr)
图书馆(tidyr)
#阅读并清理“kit.txt”
read.table('kit.txt',sep=';')%>%
单独的_行(V1,sep=',\\s+')%>%
单独(V1,c('V1','V2'),sep='#')%>%
突变(V2=sub(',$,'',V2))->d1
d1
#一个tibble:4x2
#V1 V2
#
#1英国广播公司a 22292
#2 bbc_b 22293
#3.85394
#4城市4 2525
#读取并清除“stores.txt”
read.table('stores.txt',sep='@')%>%
单独的_行(V1,sep=',\\s\\[')%>%
单独(V1,c('V1','V2'),sep='\\s=\\s')%>%
单独的行(V2,sep=',\\s')%>%
突变(V2=gsub('\{124;\\}','',V2),
V1=trimws(gsub('\[\\]','',V1))%>%
单独(V2,c('V2','V3'),sep='#')%>%
突变(V3=sub(',$,'',V3))->d2
d2
#V1 V2 V3
#
#12292 bbc/images/auction.jpg 567482
#22292 bbc/images/station.jpg 517482
#35394 bbc/images/sunrise.jpg 567499
#432112 bbc/images/sunset.mp3 53209
#5 432112 bbc/images/alert.mp3 51109
#read area.txt
d3%
内部连接(d2,by=c('V2'='V1'))%>%
内部连接(d3,by=c('V2.y'='V1'))->结果
后果
#一个tibble:2x5
#V1 V2.x V2.y V3 V2.y.y
#
#1 bbc_a 22292 bbc/images/auction.jpg 567482 52
#2沙漠8 5394 bbc/images/sunrise.jpg 567499 38
#写文件
cat(sprintf(“%s#%s#%s”,”,结果$V2.y,结果$V3,结果$V2.y.y),文件='result.lua',sep='\n')
对于共享的示例,也可以在不使用
'kit.txt'
的情况下实现相同的输出。您需要对所有文件执行一些清理,以便它们的格式可用
library(dplyr)
library(tidyr)
#Read and clean 'kit.txt'
read.table('kit.txt', sep = ';') %>%
separate_rows(V1, sep = ',\\s+') %>%
separate(V1, c('V1', 'V2'), sep = '#') %>%
mutate(V2 = sub(',$', '', V2)) -> d1
d1
# A tibble: 4 x 2
# V1 V2
# <chr> <chr>
#1 bbc_a 22292
#2 bbc_b 22293
#3 desert8 5394
#4 city4 2525
#Read and clean 'stores.txt'
read.table('stores.txt', sep = '@') %>%
separate_rows(V1, sep = ',\\s\\[') %>%
separate(V1, c('V1', 'V2'), sep = '\\s=\\s') %>%
separate_rows(V2, sep = ',\\s') %>%
mutate(V2 = gsub('\\{|\\}', '', V2),
V1 = trimws(gsub('\\[|\\]', '', V1))) %>%
separate(V2, c('V2', 'V3'), sep = '#') %>%
mutate(V3 = sub(',$', '',V3)) -> d2
d2
# V1 V2 V3
# <chr> <chr> <chr>
#1 22292 bbc/images/auction.jpg 567482
#2 22292 bbc/images/station.jpg 517482
#3 5394 bbc/images/sunrise.jpg 567499
#4 432112 bbc/images/sunset.mp3 53209
#5 432112 bbc/images/alert.mp3 51109
#read area.txt
d3 <- read.table('area.txt', sep = ';')
d3
# V1 V2
#1 bbc/images/auction.jpg 52
#2 bbc/images/sunrise.jpg 38
#3 bbc/images/stars.jpg 46
#combine d1, d2 and d3
d1 %>%
inner_join(d2, by = c('V2' = 'V1')) %>%
inner_join(d3, by = c('V2.y' = 'V1')) -> result
result
# A tibble: 2 x 5
# V1 V2.x V2.y V3 V2.y.y
# <chr> <chr> <chr> <chr> <int>
#1 bbc_a 22292 bbc/images/auction.jpg 567482 52
#2 desert8 5394 bbc/images/sunrise.jpg 567499 38
#Write the file
cat(sprintf('"%s#%s#%s",', result$V2.y, result$V3, result$V2.y.y), file = 'result.lua', sep = '\n')
库(dplyr)
图书馆(tidyr)
#阅读并清理“kit.txt”
read.table('kit.txt',sep=';')%>%
单独的_行(V1,sep=',\\s+')%>%
单独(V1,c('V1','V2'),sep='#')%>%
突变(V2=sub(',$,'',V2))->d1
d1
#一个tibble:4x2
#V1 V2
#
#1英国广播公司a 22292
#2 bbc_b 22293
#3.85394
#4城市4 2525
#读取并清除“stores.txt”
read.table('stores.txt',sep='@')%>%
单独的_行(V1,sep=',\\s\\[')%>%
单独(V1,c('V1','V2'),sep='\\s=\\s')%>%
单独的行(V2,sep=',\\s')%>%
突变(V2=gsub('\{124;\\}','',V2),
V1=trimws(gsub('\[\\]','',V1))%>%
单独(V2,c('V2','V3'),sep='#')%>%
突变(V3=sub(',$,'',V3))->d2
d2
#V1 V2 V3
#
#12292 bbc/images/auction.jpg 567482
#22292 bbc/images/station.jpg 517482
#35394 bbc/images/sunrise.jpg 567499
#432112 bbc/images/sunset.mp3 53209
#5 432112 bbc/images/alert.mp3 51109
#read area.txt
d3%
内部连接(d2,by=c('V2'='V1'))%>%
内部连接(d3,by=c('V2.y'='V1'))->结果
后果
#一个tibble:2x5
#V1 V2.x V2.y V3 V2.y.y
#
#1 bbc_a 22292 bbc/images/auction.jpg 567482 52
#2沙漠8 5394 bbc/images/sunrise.jpg 567499 38
#写文件
cat(sprintf(“%s#%s#%s”,”,结果$V2.y,结果$V3,结果$V2.y.y),文件='result.lua',sep='\n')
对于共享的示例,不使用'kit.txt'
也可以实现相同的输出。以下是我的尝试
$ cat file1.txt
"bbc_a#22292", "bbc_b#22293", "desert8#5394", "city4#2525"
$ cat file2.txt
["22292"] = {"bbc/images/auction.jpg#567482"}, ["5394"] = {"bbc/images/sunrise.jpg#567499"}, ["432112"] = {"bbc/images/sunset.mp3#53209"}
$ cat file3.txt
bbc/images/auction.jpg;52
bbc/images/sunrise.jpg;38
bbc/images/stars.jpg;46
# Reading in the files as vectors.
v1 <- scan("file1.txt",what = character(),sep=",")
v2 <- scan("file2.txt",what=character(),sep=",")
v3 <- scan("file3.txt",what = character(),sep="\n")
# Making dataframes from the vectors
library(stringr)
df1 <- str_split_fixed(v1,"#",2)
df2 <- str_split_fixed(v2,"=",2)
df3 <- str_split_fixed(v3,";",2)
> df1
[,1] [,2]
[1,] "bbc_a" "22292"
[2,] " bbc_b" "22293"
[3,] " desert8" "5394"
[4,] " city4" "2525"
> df2
[,1] [,2]
[1,] "[22292] " " {bbc/images/auction.jpg#567482}"
[2,] " [5394] " " {bbc/images/sunrise.jpg#567499}"
[3,] " [432112] " " {bbc/images/sunset.mp3#53209}"
> df3
[,1] [,2]
[1,] "bbc/images/auction.jpg" "52"
[2,] "bbc/images/sunrise.jpg" "38"
[3,] "bbc/images/stars.jpg" "46"
>
library(dplyr)
df1 <- mutate_all(data.frame(df1),list(trimws))
> df1
X1 X2
1 bbc_a 22292
2 bbc_b 22293
3 desert8 5394
4 city4 2525
>
df2 <- mutate_all(data.frame(df2), list(trimws))
> df2
X1 X2
1 [22292] {bbc/images/auction.jpg#567482}
2 [5394] {bbc/images/sunrise.jpg#567499}
3 [432112] {bbc/images/sunset.mp3#53209}
>
df2 <- mutate_all(df2,str_sub,2,-2)
> df2
X1 X2
1 22292 bbc/images/auction.jpg#567482
2 5394 bbc/images/sunrise.jpg#567499
3 432112 bbc/images/sunset.mp3#53209
>
df4 <- str_split_fixed(df2$X2,"#",2)
> df4
[,1] [,2]
[1,] "bbc/images/auction.jpg" "567482"
[2,] "bbc/images/sunrise.jpg" "567499"
[3,] "bbc/images/sunset.mp3" "53209"
>
df2<- df2[,1]
df2 <- cbind(df2,df4)
> df2
df2
[1,] "22292" "bbc/images/auction.jpg" "567482"
[2,] "5394" "bbc/images/sunrise.jpg" "567499"
[3,] "432112" "bbc/images/sunset.mp3" "53209"
>
kit <- as_tibble(df1)
colnames(df2)<-NULL
store <- as_tibble(df2)
area <- as_tibble(df3)
> kit
# A tibble: 4 x 2
X1 X2
<chr> <chr>
1 bbc_a 22292
2 bbc_b 22293
3 desert8 5394
4 city4 2525
> store
# A tibble: 3 x 3
V1 V2 V3
<chr> <chr> <chr>
1 22292 bbc/images/auction.jpg 567482
2 5394 bbc/images/sunrise.jpg 567499
3 432112 bbc/images/sunset.mp3 53209
> area
# A tibble: 3 x 2
V1 V2
<chr> <chr>
1 bbc/images/auction.jpg 52
2 bbc/images/sunrise.jpg 38
3 bbc/images/stars.jpg 46
>
j1 <- inner_join(kit,store,by =c("X2"="V1"))
> j1
# A tibble: 2 x 4
X1 X2 V2 V3
<chr> <chr> <chr> <chr>
1 bbc_a 22292 bbc/images/auction.jpg 567482
2 desert8 5394 bbc/images/sunrise.jpg 567499
>
j2 <- inner_join(j1,area,by = c("V2"="V1" ))
> j2
# A tibble: 2 x 5
X1 X2 V2 V3 V2.y
<chr> <chr> <chr> <chr> <chr>
1 bbc_a 22292 bbc/images/auction.jpg 567482 52
2 desert8 5394 bbc/images/sunrise.jpg 567499 38
>
answer <- j2[,c(3:5)]
> answer
# A tibble: 2 x 3
V2 V3 V2.y
<chr> <chr> <chr>
1 bbc/images/auction.jpg 567482 52
2 bbc/images/sunrise.jpg 567499 38
>
colnames(answer)<- c("C1","C2","C3")
paste(answer$C1,answer$C2,answer$C3,sep="#")
[1] "bbc/images/auction.jpg#567482#52" "bbc/images/sunrise.jpg#567499#38
$cat file1.txt
“bbc#a#22292”、“bbc#b#22293”、“沙漠8#5394”、“城市4#2525”
$cat file2.txt
[“22292”]={“bbc/images/auction.jpg#567482”}、[“5394”]={“bbc/images/sunrise.jpg#567499”}、[“432112”]={“bbc/images/sunset.mp3#53209”}
$cat file3.txt
bbc/images/auction.jpg;52
bbc/images/sunrise.jpg;38
bbc/images/stars.jpg;46
#以向量形式读取文件。
v1
df2 df2
X1-X2
12292 bbc/images/auction.jpg#567482
25394 bbc/images/sunrise.jpg#567499
432112 bbc/images/sunset.mp3#53209
>
df4 df4
[,1] [,2]
[1,]“bbc/images/auction.jpg”“567482”
[2,]“bbc/images/sunrise.jpg”“567499”
[3,]“bbc/images/sunset.mp3”“53209”
>
df2
配套元件
j1
#一个tibble:2x4
x1x2v2v3
1 bbc_a 22292 bbc/images/auction.jpg 567482
2.8 5394 bbc/images/sunrise.jpg 567499
>
j2 j2
#一个tibble:2x5
x1x2v2v2.y
1 bbc_a 22292 bbc/images/auction.jpg 567482 52
2沙漠8 5394 bbc/images/sunrise.jpg 567499 38
>
答覆
#一个tibble:2x3
V2.y
1 bbc/images/auction.jpg 567482 52
2 bbc/images/sunrise.jpg 567499 38
>
colnames(答案)以下是我的尝试
$ cat file1.txt
"bbc_a#22292", "bbc_b#22293", "desert8#5394", "city4#2525"
$ cat file2.txt
["22292"] = {"bbc/images/auction.jpg#567482"}, ["5394"] = {"bbc/images/sunrise.jpg#567499"}, ["432112"] = {"bbc/images/sunset.mp3#53209"}
$ cat file3.txt
bbc/images/auction.jpg;52
bbc/images/sunrise.jpg;38
bbc/images/stars.jpg;46
# Reading in the files as vectors.
v1 <- scan("file1.txt",what = character(),sep=",")
v2 <- scan("file2.txt",what=character(),sep=",")
v3 <- scan("file3.txt",what = character(),sep="\n")
# Making dataframes from the vectors
library(stringr)
df1 <- str_split_fixed(v1,"#",2)
df2 <- str_split_fixed(v2,"=",2)
df3 <- str_split_fixed(v3,";",2)
> df1
[,1] [,2]
[1,] "bbc_a" "22292"
[2,] " bbc_b" "22293"
[3,] " desert8" "5394"
[4,] " city4" "2525"
> df2
[,1] [,2]
[1,] "[22292] " " {bbc/images/auction.jpg#567482}"
[2,] " [5394] " " {bbc/images/sunrise.jpg#567499}"
[3,] " [432112] " " {bbc/images/sunset.mp3#53209}"
> df3
[,1] [,2]
[1,] "bbc/images/auction.jpg" "52"
[2,] "bbc/images/sunrise.jpg" "38"
[3,] "bbc/images/stars.jpg" "46"
>
library(dplyr)
df1 <- mutate_all(data.frame(df1),list(trimws))
> df1
X1 X2
1 bbc_a 22292
2 bbc_b 22293
3 desert8 5394
4 city4 2525
>
df2 <- mutate_all(data.frame(df2), list(trimws))
> df2
X1 X2
1 [22292] {bbc/images/auction.jpg#567482}
2 [5394] {bbc/images/sunrise.jpg#567499}
3 [432112] {bbc/images/sunset.mp3#53209}
>
df2 <- mutate_all(df2,str_sub,2,-2)
> df2
X1 X2
1 22292 bbc/images/auction.jpg#567482
2 5394 bbc/images/sunrise.jpg#567499
3 432112 bbc/images/sunset.mp3#53209
>
df4 <- str_split_fixed(df2$X2,"#",2)
> df4
[,1] [,2]
[1,] "bbc/images/auction.jpg" "567482"
[2,] "bbc/images/sunrise.jpg" "567499"
[3,] "bbc/images/sunset.mp3" "53209"
>
df2<- df2[,1]
df2 <- cbind(df2,df4)
> df2
df2
[1,] "22292" "bbc/images/auction.jpg" "567482"
[2,] "5394" "bbc/images/sunrise.jpg" "567499"
[3,] "432112" "bbc/images/sunset.mp3" "53209"
>
kit <- as_tibble(df1)
colnames(df2)<-NULL
store <- as_tibble(df2)
area <- as_tibble(df3)
> kit
# A tibble: 4 x 2
X1 X2
<chr> <chr>
1 bbc_a 22292
2 bbc_b 22293
3 desert8 5394
4 city4 2525
> store
# A tibble: 3 x 3
V1 V2 V3
<chr> <chr> <chr>
1 22292 bbc/images/auction.jpg 567482
2 5394 bbc/images/sunrise.jpg 567499
3 432112 bbc/images/sunset.mp3 53209
> area
# A tibble: 3 x 2
V1 V2
<chr> <chr>
1 bbc/images/auction.jpg 52
2 bbc/images/sunrise.jpg 38
3 bbc/images/stars.jpg 46
>
j1 <- inner_join(kit,store,by =c("X2"="V1"))
> j1
# A tibble: 2 x 4
X1 X2 V2 V3
<chr> <chr> <chr> <chr>
1 bbc_a 22292 bbc/images/auction.jpg 567482
2 desert8 5394 bbc/images/sunrise.jpg 567499
>
j2 <- inner_join(j1,area,by = c("V2"="V1" ))
> j2
# A tibble: 2 x 5
X1 X2 V2 V3 V2.y
<chr> <chr> <chr> <chr> <chr>
1 bbc_a 22292 bbc/images/auction.jpg 567482 52
2 desert8 5394 bbc/images/sunrise.jpg 567499 38
>
answer <- j2[,c(3:5)]
> answer
# A tibble: 2 x 3
V2 V3 V2.y
<chr> <chr> <chr>
1 bbc/images/auction.jpg 567482 52
2 bbc/images/sunrise.jpg 567499 38
>
colnames(answer)<- c("C1","C2","C3")
paste(answer$C1,answer$C2,answer$C3,sep="#")
[1] "bbc/images/auction.jpg#567482#52" "bbc/images/sunrise.jpg#567499#38
$cat file1.txt
“bbc#a#22292”、“bbc#b#22293”、“沙漠8#5394”、“城市4#2525”
$cat file2.txt
[“22292”]={“bbc/images/auction.jpg#567482”}、[“5394”]={“bbc/images/sunrise.jpg#567499”}、[“432112”]={“bbc/images/sunset.mp3#53209”}
$cat file3.txt
bbc/images/auction.jpg;52
bbc/images/sunrise.jpg;38
bbc/images/stars.jpg;46
#以向量形式读取文件。
v1
df2 df2
X1-X2
12292 bbc/images/auction.jpg#567482
25394 bbc/images/sunrise.jpg#567499
432112 bbc/images/sunset.mp3#53209
>
df4 df4
[,1] [,
library(dplyr)
library(tidyr)
#Read and clean 'kit.txt'
read.table('kit.txt', sep = ';') %>%
separate_rows(V1, sep = ',\\s+') %>%
separate(V1, c('V1', 'V2'), sep = '#') %>%
mutate(V2 = sub(',$', '', V2)) -> d1
d1
# A tibble: 4 x 2
# V1 V2
# <chr> <chr>
#1 bbc_a 22292
#2 bbc_b 22293
#3 desert8 5394
#4 city4 2525
#Read and clean 'stores.txt'
read.table('stores.txt', sep = '@') %>%
separate_rows(V1, sep = ',\\s\\[') %>%
separate(V1, c('V1', 'V2'), sep = '\\s=\\s') %>%
separate_rows(V2, sep = ',\\s') %>%
mutate(V2 = gsub('\\{|\\}', '', V2),
V1 = trimws(gsub('\\[|\\]', '', V1))) %>%
separate(V2, c('V2', 'V3'), sep = '#') %>%
mutate(V3 = sub(',$', '',V3)) -> d2
d2
# V1 V2 V3
# <chr> <chr> <chr>
#1 22292 bbc/images/auction.jpg 567482
#2 22292 bbc/images/station.jpg 517482
#3 5394 bbc/images/sunrise.jpg 567499
#4 432112 bbc/images/sunset.mp3 53209
#5 432112 bbc/images/alert.mp3 51109
#read area.txt
d3 <- read.table('area.txt', sep = ';')
d3
# V1 V2
#1 bbc/images/auction.jpg 52
#2 bbc/images/sunrise.jpg 38
#3 bbc/images/stars.jpg 46
#combine d1, d2 and d3
d1 %>%
inner_join(d2, by = c('V2' = 'V1')) %>%
inner_join(d3, by = c('V2.y' = 'V1')) -> result
result
# A tibble: 2 x 5
# V1 V2.x V2.y V3 V2.y.y
# <chr> <chr> <chr> <chr> <int>
#1 bbc_a 22292 bbc/images/auction.jpg 567482 52
#2 desert8 5394 bbc/images/sunrise.jpg 567499 38
#Write the file
cat(sprintf('"%s#%s#%s",', result$V2.y, result$V3, result$V2.y.y), file = 'result.lua', sep = '\n')
$ cat file1.txt
"bbc_a#22292", "bbc_b#22293", "desert8#5394", "city4#2525"
$ cat file2.txt
["22292"] = {"bbc/images/auction.jpg#567482"}, ["5394"] = {"bbc/images/sunrise.jpg#567499"}, ["432112"] = {"bbc/images/sunset.mp3#53209"}
$ cat file3.txt
bbc/images/auction.jpg;52
bbc/images/sunrise.jpg;38
bbc/images/stars.jpg;46
# Reading in the files as vectors.
v1 <- scan("file1.txt",what = character(),sep=",")
v2 <- scan("file2.txt",what=character(),sep=",")
v3 <- scan("file3.txt",what = character(),sep="\n")
# Making dataframes from the vectors
library(stringr)
df1 <- str_split_fixed(v1,"#",2)
df2 <- str_split_fixed(v2,"=",2)
df3 <- str_split_fixed(v3,";",2)
> df1
[,1] [,2]
[1,] "bbc_a" "22292"
[2,] " bbc_b" "22293"
[3,] " desert8" "5394"
[4,] " city4" "2525"
> df2
[,1] [,2]
[1,] "[22292] " " {bbc/images/auction.jpg#567482}"
[2,] " [5394] " " {bbc/images/sunrise.jpg#567499}"
[3,] " [432112] " " {bbc/images/sunset.mp3#53209}"
> df3
[,1] [,2]
[1,] "bbc/images/auction.jpg" "52"
[2,] "bbc/images/sunrise.jpg" "38"
[3,] "bbc/images/stars.jpg" "46"
>
library(dplyr)
df1 <- mutate_all(data.frame(df1),list(trimws))
> df1
X1 X2
1 bbc_a 22292
2 bbc_b 22293
3 desert8 5394
4 city4 2525
>
df2 <- mutate_all(data.frame(df2), list(trimws))
> df2
X1 X2
1 [22292] {bbc/images/auction.jpg#567482}
2 [5394] {bbc/images/sunrise.jpg#567499}
3 [432112] {bbc/images/sunset.mp3#53209}
>
df2 <- mutate_all(df2,str_sub,2,-2)
> df2
X1 X2
1 22292 bbc/images/auction.jpg#567482
2 5394 bbc/images/sunrise.jpg#567499
3 432112 bbc/images/sunset.mp3#53209
>
df4 <- str_split_fixed(df2$X2,"#",2)
> df4
[,1] [,2]
[1,] "bbc/images/auction.jpg" "567482"
[2,] "bbc/images/sunrise.jpg" "567499"
[3,] "bbc/images/sunset.mp3" "53209"
>
df2<- df2[,1]
df2 <- cbind(df2,df4)
> df2
df2
[1,] "22292" "bbc/images/auction.jpg" "567482"
[2,] "5394" "bbc/images/sunrise.jpg" "567499"
[3,] "432112" "bbc/images/sunset.mp3" "53209"
>
kit <- as_tibble(df1)
colnames(df2)<-NULL
store <- as_tibble(df2)
area <- as_tibble(df3)
> kit
# A tibble: 4 x 2
X1 X2
<chr> <chr>
1 bbc_a 22292
2 bbc_b 22293
3 desert8 5394
4 city4 2525
> store
# A tibble: 3 x 3
V1 V2 V3
<chr> <chr> <chr>
1 22292 bbc/images/auction.jpg 567482
2 5394 bbc/images/sunrise.jpg 567499
3 432112 bbc/images/sunset.mp3 53209
> area
# A tibble: 3 x 2
V1 V2
<chr> <chr>
1 bbc/images/auction.jpg 52
2 bbc/images/sunrise.jpg 38
3 bbc/images/stars.jpg 46
>
j1 <- inner_join(kit,store,by =c("X2"="V1"))
> j1
# A tibble: 2 x 4
X1 X2 V2 V3
<chr> <chr> <chr> <chr>
1 bbc_a 22292 bbc/images/auction.jpg 567482
2 desert8 5394 bbc/images/sunrise.jpg 567499
>
j2 <- inner_join(j1,area,by = c("V2"="V1" ))
> j2
# A tibble: 2 x 5
X1 X2 V2 V3 V2.y
<chr> <chr> <chr> <chr> <chr>
1 bbc_a 22292 bbc/images/auction.jpg 567482 52
2 desert8 5394 bbc/images/sunrise.jpg 567499 38
>
answer <- j2[,c(3:5)]
> answer
# A tibble: 2 x 3
V2 V3 V2.y
<chr> <chr> <chr>
1 bbc/images/auction.jpg 567482 52
2 bbc/images/sunrise.jpg 567499 38
>
colnames(answer)<- c("C1","C2","C3")
paste(answer$C1,answer$C2,answer$C3,sep="#")
[1] "bbc/images/auction.jpg#567482#52" "bbc/images/sunrise.jpg#567499#38