1
dati<- (read.csv(file='C:...csv', header=TRUE, sep=";"))
我選擇兩個變量
id<-dati$post_visid_low
item<-dati$event_list
比
id<-as.character(id)
item<-as.character(item)
dataT <- data.table(id, it
EM)進口數據開始 dataT的結構
id item
1 102, 104, 108,401
2 405, 103, 650, 555, 450
3 305, 109
我希望獲得頻率的頻道的這個矩陣ordined列
id 102 103 104 108 109 305 401 405 450 555 650
1 1 1 1
2 1 1 1 1
3 1 1
我怎樣才能做到這一點? 我試着用
library(Matrix)
id<-as.character(id)
item<-as.character(item)
dataT <- data.table(id, item)
lst <- strsplit(dataT$item, '\\s*,\\s*')
Un1 <- sort(unique(unlist(lst)))
sM <- sparseMatrix(rep(dataT$id, length(lst)),
match(unlist(lst), Un1), x= 1,
dimnames=list(dataT$id, Un1))
但我recevive這個錯誤
Error in i + (!(m.i || i1)) : non-numeric argument to binary operator
我怎麼能這樣做?
擴展你的分割項目的方法,你可以做'idx < - with(d,sort(unique(as.numeric(unlist(strsplit(item,「,」)))))); s < - sapply(idx,function(x)grepl(x,d $ item))+ 0L; colnames(s)< - idx' [這是*好*,因爲它使用幾乎每個功能基R] – user20650