已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
4天前关闭。
Improve this question
我有一个 Dataframe 与3列或更多,我需要提取这些项目从列中存在于两个或更多列在一个 Dataframe ,并把这些项目在新的列。这里是我的数据供您参考
df3 <-data.frame(Gene= c("A", "B", "C","D","E","G"),
G1=c("GH13_22", "GH109","GT57", "AA3","-","-"),
G2=c("GH13_22","- ","GT57","AA3", "GT41","PL"),
G3=c("GH13", "GH1O9","-", "GT41", "GT41","-"))
输出将是这样的
df3 <-data.frame(Gene= c("A", "B", "C","D","E","G"),
G1=c("GH13_22", "GH109","GT57", "AA3","-","-"),
G2=c("GH13_22","- ","GT57","AA3", "GT41","PL"),
G3=c("GH13", "GH1O9","-", "GT41", "GT41","-"),
G4=c("GH13_22", "GH1O9","GT57","AA3","GT41","-"))
感谢您的帮助我试过这个代码可以任何人请更正它
library(data.table)
Compar <- data.table(df3)
D3<- cazy_Compar[G1==G2|
G2==G2|
G1==G3]
2条答案
按热度按时间sr4lhrrt1#
希望对你的问题有所帮助。
x3naxklr2#
这个答案使用了
data.table
包,如果你以前从未见过这个包,下面的代码可能会让你感到困惑,所以如果你决定使用这个解决方案,我建议你搜索一些基本的资源。简单地说,
X := Y
使用公式Y
创建了一个名为X
的新列。特殊符号.SD
是整个数据集的占位符(在本例中),然后将其输入apply()
的第一个参数。最后,我们使用table函数将给定行制成表格,然后which.max()
调用选取该行中出现频率最高的值。