Выполнять функции, используя номер столбца (не имя столбца) - PullRequest
0 голосов
/ 17 января 2019

У меня есть DataFrame «Программное обеспечение» , и мне нужно выполнить функции на его Номер столбца без использования имени столбца. например,

Software <- aggregate(Software$`Amount1`, by=list(Tower_Name=Software$`Tower`), FUN=sum)

Здесь имя столбца "Amount1" изменяется, и мне нужно использовать его Number [7] для использования в цикле. Мне нужен гибкий способ работы с именами столбцов, и я подумал о столбце Number здесь.

1 Ответ

0 голосов
/ 17 января 2019

Один из вариантов - это подмножество данных по номеру столбца, а затем использовать formula метод aggregate

.
aggregate(.~ cbind(Tower_Name = Tower), 
       Software[c(7, match('Tower', names(Software)))], FUN = sum)

Ключ - это подмножество столбцов «Программное обеспечение». Здесь мы уже знаем индекс столбца 'Amount' как 7, объединенный с соответствующим индексом столбца 'Tower', выводит двухкадровый кадр данных. В методе формулы мы можем указать . для всех остальных столбцов. Здесь это будет «Количество» или варианты его названия


С tidyverse это было бы проще, поскольку summarise_at может принимать либо имена столбцов, либо индекс

library(tidyverse)
Software %>%
     group_by(Tower) %>%
     summarise_at(7, sum) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...