R Сценарии на листах Google - PullRequest
       20

R Сценарии на листах Google

0 голосов
/ 27 августа 2018

У меня есть лист Google, который выглядит следующим образом

Name  Surname  Country  Path
John   Snow      UK     /Home/drive/John 
BOB    Anderson  USA    /Home/drive/BOB
Tim    David     UK     /Home/drive/Tim 
Wayne  Green     UK     /Home/drive/Wayne

Я написал скрипт, который сначала проверяет, если country =="UK", если true, изменяет путь с "/Home/drive/" на "/Server/files/", используя gsub в R.

Сценарий

Pattern<-"/Home/drive/"

Replacement<- "/Server/files/"

gs_catalog_Staging <- apply(gs_catalog$Sheet_Name[4],function(x){
ifelse(gs_catalog$Sheet_Name[3]== "UK", gsub(Pattern,Replacement, gs_catalog$Sheet_Name[4],ignore.case=T),gs_catalog) })

Вывод, который я получаю (я поставил только первую строку для экономии места):

Name  Surname  Country  Path
John   Snow      UK     c("/Server/files/John"), c("/Server/files/BOB"), c("/Server/files/BOB"),c("/Server/files/Tim"), c("/Server/files/Wayne")

Вывод, который я хочу

Name  Surname  Country  Path
John   Snow      UK     /Server/files/John

Спасибо

1 Ответ

0 голосов
/ 28 августа 2018

попробуйте это:

Pattern<-"/Home/drive/"

Replacement<- "/Server/files/"

gs_catalog <- read.table(text = "Name  Surname  Country  Path
John   Snow      UK     /Home/drive/John 
BOB    Anderson  USA    /Home/drive/BOB
Tim    David     UK     /Home/drive/Tim 
Wayne  Green     UK     /Home/drive/Wayne", 
                         header = TRUE, as.is = TRUE
)

gs_catalog$Path <- ifelse(gs_catalog$Country == 'UK',
                          sub(Pattern, Replacement, gs_catalog$Path),
                          gs_catalog$Path
)

Результаты:

> gs_catalog
   Name  Surname Country                Path
1  John     Snow      UK  /Server/files/John
2   BOB Anderson     USA     /Home/drive/BOB
3   Tim    David      UK   /Server/files/Tim
4 Wayne    Green      UK /Server/files/Wayne
...