将具有2个参数的函数应用于df

时间:2020-06-12 10:09:54

标签: r dataframe

我有一个数据框,其中的列基因具有重复的值。我想对每组重复的值应用一个函数,该函数将baseMean和pvale列作为参数。 即将“ baseMean”和“ pvale”中的所有值与“ gene”中的值相同,然后对其进行处理。不能通过“ gene”手动设置df,因为“ gene”中有成千上万个不同的值。 我的第一个想法是使用:

library(lancaster) # a function taking two vectors as input
by(df, df$gene, lancaster, c(df$pvale, df$baseMean))

不幸的是,这会将向量视为函数的单个参数,删除c(...)并没有提供补救措施,因为随后删除了最后一个参数。 还有其他选项可以将函数应用于“ gene”列中相同的df值吗? 非常感谢!

>df
     baseMean        pvale      gene
 1:  13.538457 1.673427e-01 AT1G01020
 2:  15.941034 5.639909e-01 AT1G01020
 3:  12.587422 5.706964e-01 AT1G01020
 4:  13.628112 6.002292e-01 AT1G01020
 5:  26.003794 2.075687e-01 AT1G01020
 6:   0.767917 4.298488e-01 AT1G01030
 7: 129.280745 8.218158e-01 AT1G01040
 8: 539.597575 9.186060e-14 AT1G01060
 9:  32.214273 3.166877e-04 AT1G01060
10:  10.970998 6.589592e-02 AT1G01060

1 个答案:

答案 0 :(得分:0)

由于我不知道您打算使用什么函数,因此,此示例计算了一个由2个向量组成的简单函数(第一个向量的均值加上第二个向量的总和),然后将其应用于{ {1}}个数据集重复了<com.google.android.material.floatingactionbutton.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="44dp" app:layout_constraintBottom_toTopOf="@+id/nav_view" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintStart_toStartOf="parent" android:foregroundGravity="center" /> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/nav_view" android:layout_width="0dp" app:layout_constraintHorizontal_weight="1" android:layout_height="wrap_content" android:layout_marginStart="0dp" android:layout_marginEnd="0dp" android:background="?android:attr/windowBackground" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:menu="@menu/bottom_nav_menu" /> 个值(类似于您的基因)

iris

输出:

Species