Мой формат CSV файлов являютсяКак получить все значения определенного столбца на основе определенного значения в другом столбце в R?
Camp.CSV
Campaign,AdGroup,Keyword,Status
florida,orlando,floridaorlando,Paused
new york,albany,new yorkalbany,Active
geo_fl.csv
Campaign,Adgroup
florida,orlando
florida,miami
new york,new york
california,san francisco,
california,los angeles
Я хочу, чтобы перечислить все ADgroup в 'geo_fl.csv' на основе 'Кампании' в 'Camp.csv', как для florida в 'Camp.csv', он должен вернуть значения (orlando, miami) в 'geo_fl.csv'
Пока код такой же, как и для llows -
# Declare function to check with the presence of the 'campaignname' or not
campaignname <- function(point1, point2) {
conditioncheck <- any(point2==point1)
}
# Declare a function to check the presence of the 'adgroupname' or not
# Read the CSV files for reference
newlistings <- read.csv("/home/chi/Downloads/Camp.csv",header=TRUE)
georeportrecord <- read.csv("/home/chi/Downloads/geo_fl.csv",header=TRUE)
# Store the data of each column in a variable for 'Camp.csv'
Keyword <- newlistings$keyword
campaign <- newlistings$Campaign
adgroup <- newlistings$AdGroup
status <- newlistings$Status
# Store the data of each column in a variable for 'geo_fl.csv'
geoCampaign <- georeportrecord$Campaign
geoAdGroup <- georeportrecord$Adgroup
# getting the values for 'number of rows' in each CSV list
nCGM <- nrow(newlistings)
nAdwords <- nrow(georeportrecord)
Pts2 <- georeportrecord[,c("Campaign")]
CGMGeoList <- NULL
# checking for the presence of the element in the vector
#for(i in campaign){
for(i in 1:nCGM){
Pts1 <- NULL
Pts1$Campaign <- (newlistings$Campaign[i])
# passing the value to the function for 'campaign' presence check
checkcondition <- campaignname(Pts1,Pts2)
if(checkcondition == TRUE){
ad <- geoAdgroup[which(geoCampaign==i)# Stuck here(returning no result)
}
}
Кроме того, я попытался
for(i in campaign)
{ if (any(geoCampaign==i) == TRUE){
print(i)
# But also I want to list all adgroup for 'geo_fl.csv' together.
}}
Мой желаемый результат
Campaign,AdGroup,Keyword,Status,Campaignpresentingeo_fl,Adgrouppresentingeo_fl
florida,orlando,floridaorlando,Paused,YES,YES
new york,albany,new yorkalbany,Active,YES,NO
Условие для выше желаемого результата
for(i in campaign){
If((i present in georeportrecord)==TRUE))#for that particular 'campaign' in 'Camp.csv' check the condition for 'Adgroup' in 'geo_fl.csv'
{ If ((AdGroup[i] present in georeportrecord$Adgroup)==TRUE))#AdGroup for that particular 'campaign' 'i' in 'Camp.csv' is also present as an adgroup in 'geo_fl.csv'
{
output write.csv(florida,orlando,floridaorlando,Paused,YES,YES)
}else{
write.csv(florida,orlando,floridaorlando,Paused,YES,NO)
}
}else{write.csv(florida,orlando,floridaorlando,Paused,NO,NO)
}
Вывод данных в файл CSV, всего 2 дополнительных столбца в Camp.csv, который указывает ДА и НЕТ Как перечислить значения, указанные выше, так что Я могу записать в другой CSV-файл, пожалуйста, помогите мне с следующий, новый для R, Любая помощь приветствуется.
ли 'слияния (newlistings, georeportrecord, by = "Кампания") 'дает вам то, что вы хотите? Кроме того, для целей вашего вопроса не имеет значения, что данные начинаются в файлах CSV; после чтения в R данные находятся в 'data.frame'. –
@BrianDiggs: условие if не проверяется. Я не понимаю, почему? Позвольте мне попытаться с этим в основном. – user3188390
Вы ищете 'match()'. Вы преуспеете, чтобы ваши вопросы были намного короче и краткими. Этот вопрос можно было бы легко сформулировать менее чем в 10 строках. – geotheory