次のようなデータフレームがあります。
G1 G2 G3 a b f b c a c d bおよび参照リスト: L: a b c d e f
次の出力が必要です。
a: 2, G1,G3 (that is "a" occurs two times in G1 and in G3 column) b: 3, G1,G2,G3 c: 2, G1,G2
など.. 誰でも私を助けることができますか? お手数をおかけして申し訳ありませんが、私はRの初心者です。よろしくお願いします。
エレオノーラ
次のようなデータフレームがあります。
G1 G2 G3 a b f b c a c d bおよび参照リスト: L: a b c d e f
次の出力が必要です。
a: 2, G1,G3 (that is "a" occurs two times in G1 and in G3 column) b: 3, G1,G2,G3 c: 2, G1,G2
など.. 誰でも私を助けることができますか? お手数をおかけして申し訳ありませんが、私はRの初心者です。よろしくお願いします。
エレオノーラ
ここでの両方の方法は、すでにうまく機能しています。同様の問題に使用した方法とは少し異なる方法を提供すると思いました。
#Vinux's data:
A=data.frame( G1=c("a","b","c"), G2=c("b","c","d"), G3=c("f","a","b"))
B <- data.frame(x=rep(colnames(A), sapply(A, length)), #means of reshaping data
y=c(apply(A, 2, as.character)))
C <- split(B$x, B$y) #column names by value
D <- data.frame(letter=names(C), occurance=sapply(C, length)) #get occurrences
D$column <- sapply(C, as.character) #force vector of vectors
D[, c(1, 3, 2), ] #order it
どちらが得られますか:
letter column occurance
a a G1, G3 2
b b G1, G2, G3 3
c c G1, G2 2
d d G2 1
f f G3 1
これを別の方法で試しました。
A=data.frame( G1=c("a","b","c"), G2=c("b","c","d"), G3=c("f","a","b"))
B= melt(as.matrix(A))
B$X2 =as.character(B$X2)
B1=table(as.matrix(A))
D=aggregate(X2~value , B, FUN=c)
D$cnt=B1[D$value]
D
出力は
value X2 cnt
1 a G1, G3 2
2 b G1, G2, G3 3
3 c G1, G2 2
4 d G2 1
5 f G3 1