2014-11-08 31 views
0

我看着在互聯網上,但我還沒有發現,我在尋找的答案將每個行,但舒爾它是在那裏......不同的數字

我有一個數據幀,我想通過一個值放置在我的數據框的第二列來劃分(或任何其他操作)行的每個單元格。 因此,從col3到last col的第一行,將每個單元格除以該特定行的col2的值,以此類推每行。

我已經通過使用For循環解決了這個問題,col2(delta)現在是一個vector,col3結束它是一個data.frame(mu)。結果通過使用rbind附加到新的數據框。

問題是;我很確定這可以通過使用函數apply,sapply或類似的方法來完成,但是我還沒有得到我迄今爲止所看到的結果(不像我對循環所做的那樣好)。 ¿如何在不使用循環的情況下執行此操作?

到目前爲止我一直在使用Loop。

恢復中。 我想將每個mu分成它自己的行的delta值。

for (i in 1:(dim(mu)[1])){ 
    RA_row <- mu[i,]/delta[i] 
    RA <- rbind(RA, RA_row) 
    } 

transcript delta mu_5 mu_15 mu_25 mu_35 mu_45 mu_55 mu_65 
1 YAL001C 0.066702720 2.201787e-01 1.175731e-01 2.372506e-01 0.139281317 0.081723456 1.835414e-01 1.678318e-01 
2 YAL002W 0.106000180 3.685822e-01 1.326865e-01 2.887973e-01 0.158207858 0.193476082 1.867039e-01 1.776946e-01 
3 YAL003W 0.022119345 2.271518e+00 2.390637e+00 1.651997e+00 3.802739732 2.733559839 2.772454e+00 3.571712e+00 

感謝

+0

請發表[重複的例子(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)完全明白你正在嘗試完成。 – digEmAll 2014-11-08 17:49:04

+0

對不起,在原始數據框中,col1只是該特定行的名稱,因此不應執行任何操作。我已經保存了原始數據框中的col1以將其粘貼到RA數據框中。 在mu數據幀中,所有單元必須分開。 – biorunner88 2014-11-08 17:51:43

+0

再次,請添加您的輸入data.frame和您想要的輸出的示例。 4-5行的示例足以完全理解您的問題。 – digEmAll 2014-11-08 17:53:24

回答

3

看來好像你只想:

mu2 <- mu[-(1:2)]/mu[[2]] 
# same as mu[-(1:2), ]/mu[['delta']] 

這應該產生與行部門的新數據幀。比較危險的是做「分開」的分工。

mu[-(1:2)] <- mu[-(1:2)]/mu[[2]] 

> mu <- data.frame(a=1,b=1:10, c=rnorm(10), d=rnorm(10)) 
> mu 
    a b   c   d 
1 1 1 -1.91435943 0.45018710 
2 1 2 1.17658331 -0.01855983 
3 1 3 -1.66497244 -0.31806837 
4 1 4 -0.46353040 -0.92936215 
5 1 5 -1.11592011 -1.48746031 
6 1 6 -0.75081900 -1.07519230 
7 1 7 2.08716655 1.00002880 
8 1 8 0.01739562 -0.62126669 
9 1 9 -1.28630053 -1.38442685 
10 1 10 -1.64060553 1.86929062 
> (mu2 <- mu[-(1:2)]/mu[[2]]) 
       c   d 
1 -1.914359426 0.450187101 
2 0.588291656 -0.009279916 
3 -0.554990812 -0.106022792 
4 -0.115882600 -0.232340537 
5 -0.223184021 -0.297492062 
6 -0.125136500 -0.179198716 
7 0.298166649 0.142861258 
8 0.002174452 -0.077658337 
9 -0.142922281 -0.153825205 
10 -0.164060553 0.186929062 
> (mu[-(1:2)] <- mu[-(1:2)]/mu[[2]]) 
> mu 
    a b   c   d 
1 1 1 -1.914359426 0.450187101 
2 1 2 0.588291656 -0.009279916 
3 1 3 -0.554990812 -0.106022792 
4 1 4 -0.115882600 -0.232340537 
5 1 5 -0.223184021 -0.297492062 
6 1 6 -0.125136500 -0.179198716 
7 1 7 0.298166649 0.142861258 
8 1 8 0.002174452 -0.077658337 
9 1 9 -0.142922281 -0.153825205 
10 1 10 -0.164060553 0.186929062