1

次のようなデータフレームがあります。

 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の初心者です。よろしくお願いします。

エレオノーラ

4

3 に答える 3

1

ここでの両方の方法は、すでにうまく機能しています。同様の問題に使用した方法とは少し異なる方法を提供すると思いました。

#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 
于 2012-05-15T13:05:19.310 に答える
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
于 2012-05-15T10:50:57.140 に答える