2
我有這個數據庫(縮短)的R - 值向量到單一值進行比較(使用申請家庭)
> head(testDB,25)
Civilite Age Enfants Region Recence Frequence_visite_site Mailing_Clic
1 Mlle 18 Non Nord 5 5 Oui
2 Mlle 18 Non Sud 3 5 Oui
3 Mlle 18 Non Nord 3 8 Non
4 Mlle 18 Non Nord 7 6 Non
5 Mlle 18 Non Nord 10 5 Non
6 Mr 18 Non Nord 4 8 Oui
7 Mr 19 Non Sud 4 7 Oui
8 Mlle 20 Non Sud 4 8 Oui
9 Mlle 20 Non Sud 3 4 Oui
10 Mlle 20 Non Nord 9 4 Oui
11 Mlle 20 Non Nord 5 7 Oui
12 Mlle 20 Non Nord 3 5 Non
13 Mlle 20 Non Nord 12 4 Non
14 Mlle 20 Non Nord 15 2 Non
15 Mlle 20 Non Nord 9 7 Non
16 Mlle 20 Non Nord 18 5 Non
17 Mlle 20 Non Nord 16 4 Non
18 Mlle 20 Non Nord 12 8 Non
19 Mlle 20 Non Nord 11 8 Non
20 Mlle 21 Non Sud 4 6 Oui
21 Mlle 21 Non Sud 15 8 Oui
22 Mlle 21 Non Sud 4 8 Oui
23 Mlle 21 Non Sud 4 2 Oui
24 Mlle 21 Non Sud 6 4 Oui
25 Mr 21 Non Nord 4 8 Oui
而這些,我的班第一中鋒:
> K1 = 4
CenterOfClasses = testDB[sample(1:nrow(testDB), K1, replace=FALSE), ]
CenterOfClasses
Civilite Age Enfants Region Recence Frequence_visite_site Mailing_Clic
Mlle 45 Non Nord 11 6 Non
Mr 37 Non Nord 10 7 Non
Mr 56 Non Nord 14 6 Non
Mlle 43 Non Nord 11 8 Non
當我試圖計算一個vector(作爲testDB的單個記錄)和一個元素(作爲我的中心的每個元素)之間的差異時,我遇到了一個問題。
這是我的變量:
DVar = list()
VectClasses ##Vector
VectIndVar ##Vector
VectClasses1 = CenterOfClasses[1,] etc
VectIndVar = testBD
這是我想使用
mapply(function(x, y){
sum(identical(x,y))},
VectClasses[x,y],VectIndVar[,y])
功能這是我想做的事:
DVar[[nClass]][nVar]=sum(VectClasses[nClass,nVar] == VectIndVar[,nVar])
(比較我的數據庫第一列的值分配給第一個類的第一個變量,以及每個變量和類有可能是)
我改變了我的方法現在數據庫的每條記錄進行比較的VectClasses的每一行
我已經試過這樣:
xall = data.frame()
for (k in 1:nrow(VectClasses))
{
for (i in 1:nrow(VectIndVar))
{
xall[i,k] = sum(VectClasses[k,] == VectIndVar[i,])
}
}
它返回:
> head(xall)
V1 V2 V3 V4
1 3 3 2 2
2 2 2 1 1
3 3 4 3 3
4 3 4 3 3
5 4 4 3 3
6 3 2 3 3
現在,我試圖切割回路並將其替換爲應用系列功能
xball = sapply(xball, function(i,k){sum(VectClasses[k,] == VectIndVar[i,])})
但它不填寫xball
我想避免儘可能遍歷類的數量,或變量的數目。
你能幫我嗎?
你能否讓你的例子可重現嗎? –
你能輸入你的數據嗎? –
我覺得'VectClasses [x,y],VectIndVar [,y])'似乎不正確。無論如何,一個例子會幫助 – akrun