Для каждого пользователя вы можете сделать:
> df <- data.frame(User = c(rep("A", 4), rep("B", 4)),
+ Date = rep(seq.Date(as.Date("2012-01-01"), as.Date("2012-01-04"), by = "day"), 2),
+ Value1 = c(4, 5, 6, 7, 2, 3, 4, 5),
+ Value2 = c(3, 7, 1, 4, 4, 2, 9, 3))
>
> df_A <- df[df$User == "A", c("Value1", "Value2")]
> ts_A <- ts(df_A, start = c(2012, 1, 1), frequency = 365)
> ts_A <- ts.intersect(ts_A, lag(ts_A, -1))
> colnames(ts_A) <- c("Value1", "Value2", "Value1_t_1", "Value2_t_1")
>
> lm(Value1 ~ Value2_t_1, ts_A)
Call:
lm(formula = Value1 ~ Value2_t_1, data = ts_A)
Coefficients:
(Intercept) Value2_t_1
6.3929 -0.1071
>
Надеюсь, это поможет.
Вы получаете сообщение об ошибке, потому что он пытается найти ваш файл cert.pem в каталоге, из которого вы запускаете скрипт, а не в каталоге, в котором находится скрипт. В вашем примере это ваш пользовательский каталог "~".
Попробуйте изменить свой класс на этот или что-то подобное:
class pushNotifications {
...
private $sslPem = 'cert.pem';
...
function connectToAPNS(){
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', dirname(__FILE__) . '/' . $this->sslPem);
У меня тоже была эта проблема, оказалось, что по какой-то причине мой закрытый ключ не совпал с связанный с aps_developer_identity.cer, который у меня был ...
Я закончил тем, что очистил все моих открытых и закрытых ключей из элемента цепочки ключей «Вход в систему», затем я начал весь процесс заново (сгенерировал request) ... Я отправил новый файл запроса на программный портал и сгенерировал новый сертификат, загрузил и установил его, дважды щелкнув его (developer_identity.cer). Затем я сбрасываю профили обеспечения для использования новых сертификатов Push SSL, загружаю их и устанавливаю, дважды щелкнув (aps_developer_identity.cer). Наконец, я сбросил профиль обеспечения и загрузил новый. Я удалил старую в Xcode Organizer и установил новую. Наконец, я экспортировал свой «закрытый» ключ как key.p12 и свой aps_developer_identity.cer как apsdi.p12 и выполнил для них следующие команды:
openssl pkcs12 -clcerts -nokeys -out apsdi.pem -in apsdi.p12
openssl pkcs12 -nocerts -out key.pem -in key.p12
Если вы в порядке, используйте кодовую фразу (рекомендуется для производства):
cat apsdi.pem key.pem > cert.pem
Если вы хотите использовать «пустую» парольную фразу, вам нужно сначала расшифровать свой закрытый ключ, используя пароль, который вы указали при преобразовании его в формат pem :
openssl rsa -in key.pem -out key.unencrypted.pem
А затем введите сертификат и незашифрованный ключ в apns.pem (или любое другое имя файла, которое вы выбрали):
cat apsdi.pem key.unencrypted.pem > apns.pem
Очень важно, чтобы вы экспортировали свой сертификат aps_developer_identity, не свой сертификат developer_identity как apsdi.pem.
Если можете разверните файлы developer_identity.cer и aps_developer_identity. cer в Keychain Access, и при этом вы увидите «закрытый» ключ, все должно работать.
Заметки на будущее (после того, как у вас сильно разболелась голова из-за всего этого): 1. если вы получаете ошибку рукопожатия - вероятно, созданный вами файл pem неверен.
a. убедитесь, что файл находится в той же директории, что и php, который вы пытаетесь запустить. b. экспортируйте файл certifcate p12 и ключ под ним в утилите доступа к связке ключей. оба этих файла будут одинакового размера, но они РАЗНЫЕ. c. выполните вышеуказанные команды "openssl" в терминале macintosh.
btw, сообщение "Failed to enable crypto" исчезнет, когда система будет работать правильно.