2015-02-06 57 views
0

我知道如何手動完成它。但我想以一種聰明的方式做到這一點。我很困惑如何使用apply函數。如何操作特定的色譜柱?

我想要做的就是對頻率列進行求和,然後用此和除以每個數字。另外,我必須爲大量的數據幀執行此操作。

class Frequency 
A 1 
B 1 
C 1 
D 1 
E 1 
F 1 
G 1 
H 1 
I 1 
J 1 

預期輸出自求和= 10

class Frequency 
A .1 
B .1 
C .1 
D .1 
E .1 
F .1 
G .1 
H .1 
I .1 
J .1 

另外,我有10個這樣的dataframes,說DF1,DF2,...,DF10。

+1

名單列表存儲在一個列表中data.frames? (如果沒有,他們可能應該是) – MrFlick 2015-02-06 20:13:59

+0

你的意思是這樣的? mydata < - 列表(df1,df2,...,df10)。我可以做一個。 – maximusdooku 2015-02-06 20:15:27

+0

爲此檢查出'mget' – 2015-02-06 20:16:16

回答

2

樣本數據幀在這樣

mydata<-replicate(2, data.frame(
    class=letters[1:5], 
    Frequency=rpois(5, 4)), 
simplify=FALSE) 

您可以使用lapply遍歷data.frames

lapply(mydata, function(x) transform(x, Frequency=Frequency/sum(Frequency))) 
+0

謝謝。我有一個普遍的問題。當我將它存儲在x中時,我的原始數據框不再更新,但現在我有了一個新的列表x,我可以通過x [1],x [2]等訪問這些框架。所以從現在起,如果我必須添加另一個操作,我訪問x [1] $頻率?這是這樣做的建議方式,而不是使用數十個獨立的數據框?看來我工作很粗魯。 – maximusdooku 2015-02-06 20:27:21

+0

是的。如果數據有些相關,如果將data.frames存儲在列表中而不是一堆單獨的變量,則生活會更容易。通常,諸如將數據導入列表等操作可能容易因數分解。 – MrFlick 2015-02-06 20:28:57

+0

另外,如果我想要將我的原始數據框單獨更新而不是列表中,該怎麼辦?對不起,如果我提出基本問題。我將如何修改這個lapply? – maximusdooku 2015-02-06 20:29:26