, используя cast
вместо recast
(примечание 'Frequency'
теперь 'value'
)
df <- data.frame(Category = c("First","First","First","Second","Third","Third","Second")
, value = c(10,15,5,2,14,20,3))
install.packages("reshape")
result<-cast(df, Category ~ . ,fun.aggregate=sum)
, чтобы получить:
Category (all)
First 30
Second 5
Third 34
Объект получателя сохраняется в самом сообщении в виде строки в таблице получателей. Recipient.Name
соответствует PR_DISPLAY_NAME
. Свойство PR_ENTRYID
в этой строке (присутствует, если получатель разрешен) указывает на объект адресной книги. Вот что возвращает Recipient.AddressEntry
- он использует PR_ENTRYID
получателя для вызова IAddrBook::OpenEntry
.
Возвращенный AddressEntry.Name
теоретически может отличаться от Recipient.Name
(один происходит из объекта адресной книги, а другой - из PR_DISPLAY_NAME
в таблице получателей сообщения). ExchangeUser
по сути является расширением объекта AddressEntry
со специфическими для Exchange свойствами, поэтому ExchangeUser.Name
должно совпадать с AddressEntry.Name
.
Вы можете увидеть это, используя OutlookSpy - выберите сообщение, перейдите на вкладку GetRecipientTable. Щелкните правой кнопкой мыши свойство PR_ENTRYID
и выберите IMAPISession::OpenEntry
. Вы также можете отредактировать свойство PR_DISPLAY_NAME
для чего-то отличного от объекта GAL. PR_DISPLAY_TO
свойство сообщения будет отражать имя нового получателя при сохранении сообщения.
Я не эксперт по продуктовой линейке Microsoft. Но только по названию Outlook - это клиент, а Exchange - это сервер.
То есть, вы можете использовать объект Recipient для ссылки на адресата в вашем клиенте Outlook, независимо от того, что является фактическим почтовым сервером, это может быть Exchange, как в вашем случае, или Gmail, Yahoo! Mail, mail.live.com, что угодно.
И объект ExchangeUser специально используется для пользователя почтового ящика Exchange, который обычно настраивается на предприятии. Таким образом, вы можете найти подробные свойства, такие как JobTitle и OfficeLocation (и многие другие), которых у объекта Recipient нет.
Этот объект обеспечивает первоклассный доступ к свойствам, применимым к пользователям Exchange, таким как FirstName, JobTitle, LastName и OfficeLocation.
blockquote>Обратите внимание, что нельзя использовать Recipient.AddressEntry.GetExchangeUser (), если вы не подключены к серверу Exchange.