Как отсортировать файлы .csv в R - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть один файл .csv, который я импортировал в R. Он содержит столбец с местоположениями, некоторые местоположения повторяются в зависимости от того, сколько раз это местоположение было обследовано. У меня есть еще один столбец с общим номером нет. пласти c шт.

Я бы хотел сложить вместе количество пластиковых c элементов для местоположений, которые появляются более одного раза, и создать отдельный столбец с общим номером. из пласти c и еще один столбец №. раз место появилось.

Я не уверен, как это сделать, любая помощь будет высоко ценится.

1 Ответ

1 голос
/ 28 февраля 2020

Использование dplyr:

data %>% 
   group_by(location) %>% 
   mutate(TOTlocation=n(),TOTitems=sum(items)) 

И вот базовое решение, которое делает почти то же самое:

data[c("TOTloc","TOTitem")]<-t(sapply(data$location, function(x)
          c(TOTloc=sum(data$location==x),
            TOTitem=sum(data$items[data$location==x]))))

Обратите внимание, что ни в одном из случаев вам не нужно ничего сортировать - в dplyr вы можете использовать group_by, чтобы каждое действие выполнялось только для той части набора данных, которая принадлежит группе, определяемой содержимым определенного столбца. В моем базовом решении я разбиваю список местоположений, используя sapply, а затем снова пересчитываю TOTlo c и TOTitem для каждой строки. Это может быть не очень эффективным решением. Лучшее решение, вероятно, будет использовать split, но по какой-то причине я не смог заставить его работать с моим составленным набором данных, поэтому, возможно, кто-то еще может подсказать, как лучше всего это сделать.

...