我已經創建了一個矩陣像這樣在R A矩陣的行:比較的數據幀的行與
> head(matrix)
Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 Var9 Var10 Var11
[1,] "0" "0" "1" "0" "1" "1" "0" "0" "0" "0" "NA"
[2,] "1" "0" "1" "0" "1" "1" "0" "0" "0" "0" "NA"
[3,] "0" "1" "1" "0" "1" "1" "0" "0" "0" "0" "NA"
[4,] "1" "1" "1" "0" "1" "1" "0" "0" "0" "0" "NA"
[5,] "0" "0" "2" "0" "1" "1" "0" "0" "0" "0" "NA"
[6,] "1" "0" "2" "0" "1" "1" "0" "0" "0" "0" "NA"
現在,我想以上用下面的數據幀中的矩陣相比較:
> head(df)
cod Var11 Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 Var9 Var10 Var12
1 C000354 B 1 1 4 0 1 2 0 0 0 1 51520.72
2 C000404 A 1 0 1 0 4 4 0 0 1 1 21183.25
3 C000444 A 1 0 4 1 3 3 0 0 0 1 67504.74
4 C000480 A 1 1 2 0 2 3 0 0 1 1 26545.92
5 C000983 C 1 0 1 0 3 4 0 0 0 0 10379.37
6 C000985 C 1 0 3 1 3 4 0 0 0 0 18660.99
矩陣包含變量Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 Var9 Var10
的所有可能組合,所以基本上當(從VAR1
到VAR10
只柱)匹配df
的一排的matrix
行和該行中df
有Var12>=90000
,我希望它被寫入"A"
在matrix
的對應列VAR11
。
我已經試過這一點:
for (i in 1 : nrow(matrix)) {
for (j in 1 : 10) {
ifelse(matrix[i,j]==df[,(j+2)]
&& df$Var12[] >= 90000,
matrix[i,"Var11"] <- "A",
matrix[i,"Var11"] <- "NA")
}
}
但這個矩陣的所有行寫道:NA
。
有誰知道爲什麼會發生這種情況或如何解決它?
在此先感謝。
[如何使一個偉大的R可重現的例子?](http://stackoverflow.com/questions/5963269) – Sotos
也許它是生產NA的,因爲沒有兩個相同的行彼此 – Onyambu