У меня возникли проблемы с настройкой sapply
. У меня есть цикл for, который будет выполнять работу, в которой я нуждаюсь, но это слишком долго, чтобы завершить его.длинный формат данных в широком формате (попытка для цикла) Можно ли использовать sapply?
имена переменного объяснили:
dat #raw data
df #empty data frame to preallocate memory
uniq.user #unique user id
uniq.item #unique item id
имен столбцов для ДФА: идентификатор пользователя, идентификатор товара 1, идентификатор товара 2, ..., идентификатор товара н
Я пытаюсь создать двоичный файл таблицу, указывающую, какой элемент принадлежит пользователю.
Пример:
USERID1111 1 0 0 0 1
USERID2222 0 1 0 1 1
Необработанные данные выглядит следующим образом:
USERID1111 ITEM ID 1
USERID1111 ITEM ID 5
USERID2222 ITEM ID 2
USERID2222 ITEM ID 4
USERID2222 ITEM ID 5
для цикла у меня есть:
for(i in 1:length(uniq.user)){
df[i, which(uniq.item %in% dat[df[i,1]== dat[,1], 2]) + 1] <- 1
}
Как бы преобразовать это с помощью sapply
? (или любые другие применяемые функции)
Спасибо!
p.s. Если есть более эффективные способы выполнения этой задачи, пожалуйста, дайте мне знать! Я пытаюсь узнать более эффективные способы сделать вещи в R.
Может кто-то дать краткое объяснение, почему это downvoted? Я хочу, чтобы в будущем я мог сформулировать вопрос лучше. Спасибо! – chungsangh
Я, конечно, не думаю, что он заслуживает нисходящего звена, но в следующий раз самый лучший способ опубликовать данные для вопросов R - это использовать 'dput', чтобы люди могли копировать/вставлять их в свою сессию R. См. [Этот вопрос] (http://stackoverflow.com/q/5963269/903061) для более подробной информации. – Gregor
ах, это очень хорошо знать. Спасибо – chungsangh