2011-07-08 55 views
1

我打印出一列變量的摘要作爲這樣:如何建立從表中的新列(/data.frame),並分配相應的值對行

summary(document$subject)

summary(document$subject)

A,B,C,D,E,F,..是屬於數據框中的一個列的對象,其中A,B,C ......在該列中多次出現,上面的概要顯示這些主題出現在文件中的次數(頻率)。此外,術語「其他」是指在文件中僅出現一次的那些主題,我還需要爲這些主題指定「1」。

有很多不同的主題,如果我們使用命令「c」,很難列出所有這些主題。

我想建立一個新的列(或data.frame),然後將這些相應的數字(分數)分配給主題。理想情況下,它會在文件中變成這樣:

A 198 
B 113 
C 96 
D 69 
A 198 
E 65 
F 62 
A 198 
C 113 
BZ 21 
BC 1 
CJ 1 

...

我不知道什麼命令我應該使用採取分數/值從彙總表,然後建立一個新的列來分配這些值添加到文件中的相應主題。

另外,由於它是由R打印的彙總表,我不知道如何將其構建到文件的表中,或者從表中取出值和主題名稱。我還想知道如何找出文件中只出現一次的主題名稱,以便將摘要表添加到「OTHER」中。

回答

4

你的問題很難解釋沒有一個可重複的例子。請看一看這個威脅對如何做到這一點提示:

How to make a great R reproducible example?

話雖如此,這裏是我如何理解你的問題。你有兩個數據幀,一個每個科目的分數,另一個科目多次在列:

Sum <- data.frame(subject=c("A","B"),score=c(1,2)) 
foo <- data.frame(subject=c("A","B","A")) 

> Sum 
    subject score 
1  A  1 
2  B  2 
> foo 
    subject 
1  A 
2  B 
3  A 

然後可以使用match()在一個數據幀中的主體匹配到其他並創建新變量在第二個數據幀:

foo$score <- Sum$score[match(foo$subject, Sum$subject)] 

> foo 
    subject score 
1  A  1 
2  B  2 
3  A  1 
+0

非常感謝你的消息:)這是非常有幫助的,你理解我的問題非常好。但還有一點我需要添加,或者我不確定。由於主題太多,手動列出非常困難,而且由於主題在列中重複出現,我想知道如何使用命令列出這些主題,如上所示?謝謝! – Susie

相關問題