我有一个数据框,第一列是时间,然后每个随后的列是单个细胞转录因子的浓度,例如:
Time = c(0.1,0.2,0.3,0.4,0.5)
Cell1 = c(1,5,10,4,2)
Cell2 = c(1,5,4,11,5)
Cell3 = c(1,9,5,9,5)
df = data.frame(Time,Cell1,Cell2,Cell3)
这将得到:
Time Cell1 Cell2 Cell3
1 0.1 1 1 1
2 0.2 5 5 9
3 0.3 10 4 5
4 0.4 4 11 9
5 0.5 2 5 5
现在,我正在尝试提取每个细胞转录因子的最大浓度出现的时间,并输出类似以下内容的结果:
Cell1 0.3
Cell2 0.4
Cell3 0.2,0.4
如果这听起来很简单,对不起,我是R的新手,并在论坛上寻找答案已经摸索了一段时间。我可以通过分别查询每个列来完成它,但是我有数百个单元格,必须使用当前方法为每个单元格编写脚本:
cell1_peak=which(df[2]==max(df[2]));cell1_time=df$Time[cell1_peak]
可能的方法是使用我目前的方法和应用函数,并编译所有单元格以便轻松导出?