Я начинаю программировать на R (я только что закончил курс Coursera), и мне не удается создать этот вложенный цикл.R: Вложенная сортировка
У меня есть CSV-файл структурированную, как это (на самом деле там 108 столбцов):
Type Status Campaign Name Group Budget Budget Type Bids
Campaign Active Burritos 500 Daily
Campaign Active Tacos 400 Daily
Group Active Burritos Bean Burritos 0.5
Group Active Burritos Beef Burritos 0.5
Group Paused Burritos Chicken Burritos 0.5
Group Active Tacos Beef Tacos 0.5
Group Active Tacos Chicken Tacos 0.5
Group Paused Tacos Fish Tacos 0.5
Я хотел бы изменить порядок таблицы по названию кампании, то группа удаление приостановленной:
Type Status Campaign Name Group Budget Budget Type Bids
Campaign Active Burritos 500 Daily
Group Active Burritos Bean Burritos 0.5
Group Active Burritos Beef Burritos 0.5
Campaign Active Tacos 400 Daily
Group Active Tacos Beef Tacos 0.5
Group Active Tacos Chicken Tacos 0.5
Я был собираюсь использовать серию циклов For, но я продолжаю сталкиваться с ошибками. Я уверен, что у rbind есть ошибки. Кроме того, когда я создаю temp.ds и temp.group.ds, я думаю, что есть ошибка. Вероятно, ошибка в цикле тоже.
Ниже мой код:
ds <- do.call(rbind, lapply(list.files(path=directory, full.names=TRUE), read.table, header=TRUE, sep="\t", fileEncoding="UTF-16LE", fill = TRUE, quote = ""))
valid.campaign <- ds[ which(ds$Status == "Active" & ds$Type == "Campaign"), ]
new.ds <- NULL
for(campaign in valid.campaign$Type) {
temp.ds <- valid.campaign[,campaign]
valid.group <- ds[ which(ds$Status == "Active" & ds$Type == "Group"), ]
for (group in valid.group$Type) {
temp.group.ds <- valid.group[,group]
temp.ds <-rbind(temp.ds, temp.group.ds)
rm(temp.group.ds)
}
if (exists("new.ds")) new.ds <- rbind(new.ds,temp.ds)
else new.ds <- temp.ds
rm(temp.ds)
}
new.ds
}
Поскольку R является интерпретируемым языком, вы можете выполнить код построчно. Это должно позволить вам найти строку, которая выдает ошибку. Примечание на стороне: вы должны попытаться опубликовать воспроизводимый код в Stackoverflow. – cryo111
Попробуйте 'library (dplyr); ds%>% arr (CampaignName)%>% filter (Status! = "Paused") ' – Khashaa
вы можете' dput' ваши данные? – Hav0k