1
比方說,我有以下數據形式的數據幀在R:總和R經由不同的列不同的值
Property 1 | Property 2 | ... | Property n
A B R
C A S
D F C
. . .
. . .
. . .
R Z X
每個在任一單元格的n個屬性可以承擔任何字母A的到Z.現在,我想要計算每行中出現在該行中的26個字母中的任何一個的次數,並在屬性n旁邊的新列中給出該數字。因此,例如,n個屬性中的第一行中有七次A,六次B,0次C等與代碼給我下表
Property 1 | Property 2 | ... | Property n | A | B | C | ... | Z
A B R 7 6 0 | ... | 2
C A S
D F C
. . .
. . .
. . .
R Z X
是否有R中的功能那是嗎?儘管很慢的我以爲我可以寫在信中的每一個和一些循環和排在
x <- vector(length=nrow(tr))
for (i in 1:nrow(tr)) {
x[i] <- count(tr[i,], vars="A")
}
的形式,但後來我得到的錯誤
Error in unique.default(x) :
unique() can only be applied to vectors
或更糟的是,如果「A」是一次也沒有n個屬性中我得到的錯誤
Error in eval(expr, envir, enclos) : object 'A' not found
什麼是這裏一個可能的解決方案?
我知道必須有東西做,很容易。謝謝!正如後續:當一般單詞而不是字母在單元格中時(例如「是」,「否」),是否可以通過TEST < - c(「是」,「否」)合併這些單詞並替換在LAPTERS中LETTERS(LETTERS,函數(x)rowSums(df == x))與TEST? – Taufi
@Taufi,應該工作得很好!你可以看到它:'test < - c(「Yes」,「No」); (Property1 = sample(test,6,replace = T),Property2 = sample(test,6,replace = T),Property3 = sample(test,6,replace = T)); df [,test] < - lapply(test,function(x)rowSums(df == x))' –