我有一个包含3列的数据框,"符号"," logFC"和" PValue"。我想创建一个标有" Rank"的第四列。在" logFC"中取值的符号乘以" PValue"中的-log10()p值柱。我可以在Excel中轻松完成此操作,但我想知道是否可以在R中执行此操作。谢谢。
> head(test)
Symbol logFC PValue
1 APP 0.590 0.000156
2 MRPS6 -0.301 0.000307
3 PLEKHA6 2.541 0.000541
4 TSC22D1 0.331 0.000624
5 OMA1 0.268 0.000724
6 POPDC2 0.764 0.000892
创建:
Symbol logFC PValue Rank
1 APP 0.590 0.000156 3.8068754016
2 MRPS6 -0.301 0.000307 -3.5128616245
3 PLEKHA6 2.541 0.000541 3.2668027349
4 TSC22D1 0.331 0.000624 3.2048154103
5 OMA1 0.268 0.000724 3.1402614338
6 POPDC2 0.764 0.000892 3.0496351456
答案 0 :(得分:0)
test$Rank = -sign(test$logFC) * log(test$PValue, 10)
答案 1 :(得分:0)
通过以下命令:
test$rank <- -1*sign(test$logFC)*log10(test$PValue)
或
test <- within(test, rank <- -1*sign(logFC)*log10(PValue))
答案 2 :(得分:0)
使用dplyr:
full_seq
答案 3 :(得分:0)
以下是data.table
library(data.table)
setDT(test)[, Rank := -1*sign(logFC) * log10(Pvalue)]