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))' –